반응형
자바에서 getRemoteAddr 을 사용하다보면 보안관련 설정때문에 서버의 실 IP가 아닌 방화벽이나 L4 스위치의 아이피가 나오는경우가 있다. 그럴경우 리퀘스트 헤더에 특정 이름으로 실아이피가 박혀있을수도 있으니 확인이 필요하다.
-실 아이피 구하는 코드(왠만하면 이정도 범위에서 실아이피가 나온다고 한다)
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 | public static String getClientIpAddr(httpServletRequest request){ String 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.getRemoteAddr(); } return ip; } | cs |
반응형
'Web Development > Java' 카테고리의 다른 글
can not deserialize instance of java.lang.string[] out of value_string token (1) | 2024.09.11 |
---|---|
[Java] Unsupported major.minor version 숫자 (0) | 2018.01.19 |
[JAVA]http -> https (0) | 2017.10.30 |
[JAVA]서블릿에서 HTML,SCRIPT 코드 작성 (0) | 2017.08.28 |