본문 바로가기

Development/Java

JAVA에서 IPv4 사용하기

728x90

안녕하세요.

빅한입니다.

 

서론

오늘은 작업하는 도중에 로컬에서 테스트할 경우 request.getRemoteAddr() 호출시 주소가 "0:0:0:0:0:0:0:1"형식으로 나올경우가 있어서 포스팅합니다.

 

사실 "0:0:0:0:0:0:0:1"이런 IP주소는 IPv4에서는 "127.0.0.1"과 의미가 같다고 하네요

즉 "localhost"와 동일한 내용이라고 생각하셔도 무관할것 같습니다.

 

따라서 우리에게 익숙한 IPv4로 로컬에서 테스트하는 방법을 간단하게 확인해 보겠습니다.

 

JAVA VM

이클립스와 같은 Java VM을 사용할 경우에는 VM arguments에 다음 명령줄 하나를 추가합니다.

-Djava.net.preferIPv4Stack=true

VM arguments에 들어가는 방법은

- tomcat일 경우 : Server 탭 선택 > 해당서버 더블클릭 > General Information의 Open launch configruation 클릭 > Arguments탭 선택

- spring boot일 경우 : Boot Dashboard 탭 선택 > 해당서버 우클릭 > Open Config > Arguments탭 선택

입니다.

 

TOMCAT

tomcat 설치 폴더를 기점으로 bin/setenv.sh에서 다음 내용을 추가하면 됩니다.

JAVA_OPTS=" -Djava.net.preferIPv4Stack=true ${JAVA_OPTS} "

양끝의 " "공백은 해놓으시는 것이 좋을듯 싶습니다.

 

만약 윈도우를 사용하실 경우는

tocmat 설치 폴더 기점으로 bin/setenv.bat 파일에 다음 내용을 추가하면 됩니다.

set JAVA_OPTS=" -Djava.net.preferIPv4Stack=true %JAVA_OPTS% "

 

마무리

사실 이클립스 사용하다가 문제가 있어서 찾다가 알아두면 좋을듯 싶어 첨부하였습니다.

일하기 5분전이라 여기서 마무리 합니다.

감사합니다.

 

출처 : 

https://www.lesstif.com/pages/viewpage.action?pageId=21430821

 

Java 에서 IPv4 사용하기 (톰캣 - tomcat 등 WAS 에서 request.getRemoteAddr() 시 IPv4 주소 반환)

Java 는 OS 에서 IPv4 와 IPv6 가 모두 사용 가능할 경우 IPv6 를 우선적으로 사용하게 된다. 그래서 netstat 나 lsof 등으로 사용하는 네트워크 포트 정보등을 볼 경우나 JSP 등에서 request.getRemoteAddr() 호출시 주소가 IPv6 로 보이게 된다.

www.lesstif.com

http://download.java.net/jdk7/archive/b123/docs/api/java/net/doc-files/net-properties.html

불러오는 중입니다...

 

728x90
반응형