Error

[ Error ] ip주소 구하기 & (0:0:0:0:0:0:0:1) 해결방법

Mungwang 2023. 9. 1. 12:39

📣 오류

public static String getRemoteAddr(HttpServletRequest request) {

        String ip = null;

        ip = request.getHeader("X-Forwarded-For");

        if (ip == null || ip.length() == 0 || "unknown".equalsIgnoreCase(ip)) { 
            ip = request.getHeader("Proxy-Client-IP"); 
        } 

        if (ip == null || ip.length() == 0 || "unknown".equalsIgnoreCase(ip)) { 
            ip = request.getHeader("WL-Proxy-Client-IP"); 
        } 

        if (ip == null || ip.length() == 0 || "unknown".equalsIgnoreCase(ip)) { 
            ip = request.getHeader("HTTP_CLIENT_IP"); 
        } 

        if (ip == null || ip.length() == 0 || "unknown".equalsIgnoreCase(ip)) { 
            ip = request.getHeader("HTTP_X_FORWARDED_FOR"); 
        }

        if (ip == null || ip.length() == 0 || "unknown".equalsIgnoreCase(ip)) { 
            ip = request.getHeader("X-Real-IP"); 
        }

        if (ip == null || ip.length() == 0 || "unknown".equalsIgnoreCase(ip)) { 
            ip = request.getHeader("X-RealIP"); 
        }

        if (ip == null || ip.length() == 0 || "unknown".equalsIgnoreCase(ip)) { 
            ip = request.getHeader("REMOTE_ADDR");
        }

        if (ip == null || ip.length() == 0 || "unknown".equalsIgnoreCase(ip)) { 
            ip = request.getRemoteAddr(); 
        }

      return ip;
   }

- 코드는 정상적인걸 확인했지만 ipv값이 제대로 출력되지않았다...😂😂

  뭐가 문제일까 다른코드를 넣어보기도 하고 머리를 싸맸지만 원인을 쉽게 찾지는 못했다..

↑ 위에 사진을참고하면 처음에는 IP 가 정상 출력되지만 로그인실패, 시도할때는 [ip] 0:0:0:0:0:0:0:1 출력되었다... 

📣 오류 해결

- 이클립스에서 톰캣 실행시 아이피 주소값을 IPV4로 가져오는게 아닌 IPV6로 가져오기때문에 제대로 표시되지않음

사용하는서버 더블클릭 -> Open launch configuration 클릭 -> Arguments 클릭 ->

-> 빨간밑줄 부분에 Djava.net.preeferIPv4Stack=true 을 적어주면 정상적으로 출력된다.

     🥊 기존에있던거에 <스페이스> 한번써서 한칸 띄어써야되고 오타에 주의해야 정상적으로 출력 !!