개발도구/WAS

getRemoteAddr IPv6 to IPv4

노루아부지 2021. 7. 18. 23:34

우리가 일반적으로 알고 있는 IP는 192.168.0.1, 127.0.0.1과 같은 형태인데, java에서 request.getRemoteAddr()의 IP가 0:0:0:0:0:0:0:1인 경우가 있습니다.

여기서 0:0:0:0:0:0:0:1이라는 건 IPv6의 주소입니다.

 

그럼 IPv6는 무엇일까요?

IPv6(Internet Protocol version 6)는 인터넷 프로토콜 스택 중 네트워크 계층의 프로토콜로서 버전 6 인터넷 프로토콜(version 6 Internet Protocol)로 제정된 차세대 인터넷 프로토콜을 말한다. 인터넷(Internet)은 IPv4 프로토콜로 구축되어 왔으나 IPv4 프로토콜의 주소가 32 비트라는 제한된 주소 공간 및 국가별로 할당된 주소가 거의 소진되고 있다는 한계점으로 인해 지속적인 인터넷 발전에 문제가 예상되어, 이에 대한 대안으로써 IPv6 프로토콜이 제안되었으며, 국제 표준이 RFC를 통해서 확정되었고, 실제로 IPv6 주소는 휴대폰 및 컴퓨터에 할당되어 적용되고 있다.
출처 : 위키백과

 

 

다시 본론으로 돌아와서, 이렇게 IP가 0:0:0:0:0:0:0:1로 표시되는 경우는 localhost로 서버에 접속했을 때 생기는 현상이며, 192.168.0.1과 같은 IP로 접근했을 때는 정상적으로 표시됩니다.

 

이것을 127.0.0.1로 표시하기 위해서는 Tomcat(WAS) setting을 변경해야 합니다.

 

 

 

Tomcat Setting 변경 방법

  1. Eclipse Tomcat Server 설정 방법
    Run > Run Configurations > Arguments tab > -Djava.net.preferIPv4Stack=true 를 맨 뒤에 추가
  2. Intellij 설정 방법
    1. Help > Edit Custom VM Options ... 메뉴 클릭
    2. -Djava.net.preferIPv4Stack=true 옵션 추가
      -Xms128m
      -Xmx1013m
      -XX:ReservedCodeCacheSize=240m
      -XX:+UseConcMarkSweepGC
      -XX:SoftRefLRUPolicyMSPerMB=50
      -ea
      -XX:CICompilerCount=2
      -Dsun.io.useCanonPrefixCache=false
      -Djdk.http.auth.tunneling.disabledSchemes=""
      -XX:+HeapDumpOnOutOfMemoryError
      -XX:-OmitStackTraceInFastThrow
      -Djdk.attach.allowAttachSelf=true
      -Dkotlinx.coroutines.debug=off
      -Djdk.module.illegalAccess.silent=true
      -Dfile.encoding=UTF-8
      -Djava.net.preferIPv4Stack=true​
  3. Tomcat 설정 방법
    Tomcat설치경로/bin/catalina.bat의 "set JAVA_OPTS"를 검색하면 두 개가 나오는데, 둘 다 -Djava.net.preferIPv4Stack=true를 추가합니다.

 

 

 

참조

 

https://hane-1.tistory.com/42

 

JAVA에서 IPv4 사용하기

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

hane-1.tistory.com

https://codify.tistory.com/47

 

Tomcat Request IPv6 to IPv4

Spring에서 request.getRemoteAddr()의 IP가 0:0:0:0:0:0:0:1 일 때, 0:0:0:0:0:0:0:1 이라는건 IPv6의 주소를 가져온 것이다. 이는 IPv4로 봤을 때 127.0.0.1 이다. localhost로 서버에 접속했을 때 생기는 현상..

codify.tistory.com

728x90
loading