개발 Tip/IntelliJ

[IntelliJ] IPv6로 반환되는 값을 IPv4로 반환하는 설정 방법: JVM Options

adjh54 2024. 3. 9. 14:21
반응형
해당 글에서는 IntellIJ 내에서 기본적으로 IPv6 형태로 반환되는 IP 값을 IPv4로 반환받는 방법에 대해 알아봅니다.


 

1) 현상 확인


💡 현상 확인

- Java 내에서 클라이언트 IP 값을 반환 받으려하고 있습니다. 그러나 IPv6 형태로 클라이언트 값이 반환됨을 확인하여 이를 IPv4 형태로 반환받기를 원하여서 이를 적용합니다.

 
 
 

2) IPv4 / IPv6


 

1. IPv4


💡 IPv4 형태

- Octet의 범위는 점(.)의 구분자를 기준으로 4자리 모두 0 ~ 255자리의 값을 가집니다.
- 또한 0 ~ 255 범위 내에서 ‘0xx 형태의 값’을 가지는 경우 해당 경우에 포함되지 않습니다.

https://bluecatnetworks.com/glossary/what-is-ipv4/

 
 

2. IPv6


💡 IPv6

- 인터넷 프로토콜 버전 6으로, IPv4의 주소 공간 제한을 해결하기 위해 개발된 새로운 인터넷 주소 체계입니다.
- IPv6 주소는 128비트로 구성되어 있어, 거의 무한한 수의 유니크한 주소를 제공할 수 있습니다.

 

[참고] IPv4와 IPv6의 정규식에 대해 궁금하시면 아래의 글을 참고하시면 도움이 됩니다.
 

[Java/Short] IPv4, IPv6 정규 표현식(RegExp) 구성 방법

해당 글에서는 IPv4, IPv6에 대한 정규식을 수행하는 방법에 대해 알아봅니다. 1) IPv4 💡 IPv4 - 인터넷 프로토콜 버전 4로 컴퓨터와 같은 디바이스가 인터넷을 통해 서로 통신하기 위해 사용하는 주

adjh54.tistory.com

 
 
 

3) IntelliJ 설정


 

1. Help 탭 - Edit Custom VM Options… 를 선택합니다.


 
 
 

2. idea.vmoptions 파일이 열리고 해당 옵션을 추가해 줍니다.


-Djava.net.preferIPv4Stack=true
-Djava.net.preferIPv4Addresses=true

 

옵션 설명
Djava.net.preferIPv4Stack=true 이 옵션은 시스템 속성을 설정하여 IPv4 스택을 선호하도록 합니다. 즉, IPv4를 IPv6보다 먼저 사용하려고 시도합니다.
Djava.net.preferIPv4Addresses=true 이 옵션은 IPv4 주소를 IPv6 주소보다 선호하도록 시스템을 설정합니다. 이로 인해 해당 시스템에서는 가능한 한 IPv4 주소가 반환됩니다.

 

 

💡 위와 같은 설정을 하였으나 적용이 안되기에 아래의 방법으로 직접 실행할 때 VM Options를 주입합니다.

 
 

3. **Application 설정 - Edit Configurations.. 를 선택합니다.


 
 
 

4. Modify options - Add VM options를 선택합니다.


 
 
 

5. 아래와 같이 명령어를 추가합니다.


 

-Djava.net.preferIPv4Stack=true -Djava.net.preferIPv4Addresses=true

 
 
 
 

4) 결과확인


💡 아래와 같이 IPv4 형태로 반환받음을 확인하였습니다.

 
 
 
 
 
오늘도 감사합니다. 😀
 
 
 
 

반응형