JAVA

[JAVA] request.getRemoteAddr() IP를 IPv4로 만드는 법

codingD 2020. 7. 15. 10:28

현상

  • request.getRemoteAddr()를 사용했을 때, IP가 0:0:0:0:0:0:0:1 형식으로 나옴 (IPv6 형식) 
  • IPv6 인 0:0:0:0:0:0:0:1 형식은 IPv4의 127.0.0.1 과 같음
  • localhost로 서버에 접속했을 때 생기는 현상이며, 일반적인 IPv4의 아이피로 접근하면 정상적으로 가져옴
  • 윈도우7에선 기본적으로 IPv6를 리턴하기 때문에 발생함

해결방법

  1. 이클립스에서 톰캣 실행시 세팅
    1. Run > Run Configurations > Arguments 탭 > -Djava.net.preferIPv4Stack=true 추가
    2. Server > 해당 서버 더블클릭 > Open launch configuration > -Djava.net.preferIPv4Stack=true 추가
  2. 톰캣을 개별로 실행할 경우
    1. 톰캣설치경로 /bin/catalina.bat의 "set JAVA_OPTS" 라는 키워드로 검색하면 두 개가 나오는데 두 곳 다 -Djava.net.preferIPv4Stack=true 추가
 -Djava.net.preferIPv4Stack=true

 

1-2의 방법으로 진행한 사진