ABOUT ME

-

Today
-
Yesterday
-
Total
-
  • 자바로 ip 출력하기
    개발/개발관련 2019. 11. 26. 11:54
    반응형

    1. 자바로 ip 출력하기

    로그인한 사람을 로그로 남기기위해 ip를 저장해야한다.

    HttpServletRequest를 이용해 ip를 가져올 수 있다.

        public static String getIpAddr(HttpServletRequest request){        
            String ip = request.getHeader("X-FORWARDED-FOR");
    
            if (ip == null || ip.length() == 0) {
                ip = request.getHeader("Proxy-Client-IP");
            }
    
            if (ip == null || ip.length() == 0) {
                ip = request.getHeader("WL-Proxy-Client-IP");  // 웹로직
            }
    
            if (ip == null || ip.length() == 0) {
                ip = request.getRemoteAddr() ;
            }
    
            return ip;
        }

    하지만 ip를 출력해보면 0:0:0:... 이런식으로 나오는 경우가 있다.

    내가 원하는건 123.123.123.123 뭐 이런형식을 원하는건데.

    IPv6으로 출력되서 그렇다. 이클립스나 서버에서 IPv4로 나오게끔 설정해야한다.

    2. 이클립스에서 설정

    run - run configurations 에서 Arguments 탭 메뉴 선택하면 VM Arguments 텍스트 넣는 부분이 있다. 거기에 아래 문장을 복붙하면된다.

    -Djava.net.preferIPv4Stack=true

    그리고 서버 재시작하면 끝!

    3. 톰캣에서 설정

    톰캣경로\bin\catalina.bat 파일 열어서 수정해야한다.

     

    catalina 내 위치 (각자 다 다를 수 있음)

    :noJuliConfig
    set JAVA_OPTS=%JAVA_OPTS% %LOGGING_CONFIG% -Djava.net.preferIPv4Stack=true
    
    :noJuliManager
    set JAVA_OPTS=%JAVA_OPTS% %LOGGING_MANAGER% -Djava.net.preferIPv4Stack=true

    위와같이 두군데 수정해주고 서버 재시작하면된다.

     

     

     

    반응형

    댓글

Designed by Tistory.