📣 오류
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 을 적어주면 정상적으로 출력된다.
🥊 기존에있던거에 <스페이스> 한번써서 한칸 띄어써야되고 오타에 주의해야 정상적으로 출력 !!