MHLab blog
📜
nest_js

Nest.js에서 Ip 조회할 때 IpV6로 표시되는 것을 IpV4로 바꾸기

2023.04.01

thumbnail

배포를 하기 전에…

흑우집합소 테섭에 배포를 하고나서 몇 가지 테스트를 진행하던 도중 pm2 로그를 잠시 확인했다.

저기 보면 clientIp라고 되어 있는 곳에 IP가 뜨는데 뭔가 좀 이상했다…
IpV4가 나와야 하는데 IpV6 형식으로 나왔다.

사실 큰 상관은 없을 것 같은데 그래도 서버 내에서 로깅이나 확인할 때 IpV6 형식으로 되어 있다면 불편할 것 같았다.
그래서 이걸 V4 형식으로 바꿨다.

방법은 여러가지가 있지만, 제일 쉽고 아무것도 설치하지 않아도 되는 방식으로 했다.

async function bootstrap() {
  const app = await NestFactory.create(AppModule, { bodyParser: true });

  //Some init

  await app.listen(4000, '0.0.0.0');
  console.log(new Date(), '[SERVER-ON] = ', process.env.NODE_ENV);
}

저렇게 app.listen함수 뒤에 전달인자로 hostname을 전달해주면 된다.
저 함수를 타보면 아래와 같은 형태이다.

/**
     * Starts the application.
     *
     * @param {number|string} port
     * @param {string} [hostname]
     * @param {Function} [callback] Optional callback
     * @returns {Promise} A Promise that, when resolved, is a reference to the underlying HttpServer.
     */
    listen(port: number | string, callback?: () => void): Promise<any>;
    listen(port: number | string, hostname: string, callback?: () => void): Promise<any>;

저 hostname에 ipv4 형식을 문자열로 전달하면 이제 Nest.Js 내에서 ip 주소 표현은 IpV4로 바뀌게 된다.


작은 개인광고 양해 바랍니다 ^^;;
👇 주인장이 직접 만든 서비스 👇
/static/29a05fefb322c94d5eb3f7d05c7c224e/myc_icon.png
Typescript
React
Next.Js
Nest.Js
마와셀(웹) - 와인 가격 비교
와인 가격 비교 서비스
postweb
/static/29a05fefb322c94d5eb3f7d05c7c224e/myc_icon.png
Dart
Flutter
hive
provider
마와셀(엡) - 와인과 셀러 관리, 시음노트
보유한 와인의 관리, 시음노트 작성, 보유 와인 셀러의 관리 어플리케이션
/static/d35d260fd4813f4a6d284a7f4fbcdf49/bcow_icon.png
Typescript
React
Next.Js
Nest.Js
흑우집합소(웹) - 로또번호 추천 서비스
로또번호 추천 서비스
/static/d35d260fd4813f4a6d284a7f4fbcdf49/bcow_icon.png
Dart
Flutter
drift
provider
흑우집합소(앱) - 로또번호 추천 서비스
로또번호 추천 서비스

© Powered by danmin