반응형
일반적으로 접속자의 IP를 사져오는 방법은 ruquest 객체의 getRemoteAddr을 이용하는 것이다.
하지만 간혹 서버 구성에 따라 getRemoteAddr 이용해도 사용자의 IP를 정상적으로 얻어오지 못할때가 있다.
이럴경우에는 다음과 같이 헤더에 있는 ip 정보를 읽어서 사용자의 IP 정보를 얻을 수 있다.
public static String getClientIp(HttpServletRequest req) { String[] header_IPs = { "HTTP_CLIENT_IP", "HTTP_X_FORWARDED_FOR", "HTTP_X_FORWARDED" , "HTTP_X_CLUSTER_CLIENT_IP", "HTTP_FORWARDED_FOR", "HTTP_FORWARDED" , "X-Forwarded-For", "Proxy-Client-IP", "WL-Proxy-Client-IP" } ; for (String header : header_IPs) { String ip = req.getHeader(header); if (ip != null && !"unknown".equalsIgnoreCase(ip) && ip.length() != 0) { return ip; } } return req.getRemoteAddr() ; }
'Language > Java / JSP' 카테고리의 다른 글
[Java] Proj4j를 이용한 좌표계 변환 (1) | 2023.09.18 |
---|---|
[Java] LocalDateTime, Timestamp 변환 (LocalDateTime To Timestamp) (0) | 2020.11.30 |
[Java] 경위도 좌표 거리계산 (두 지점간의 거리) (11) | 2016.03.03 |
[JSP] 로그인 세션 유지시간 늘리기 (0) | 2015.06.15 |
[Java] 특정 자리수 만큼 0으로 공백 채우기(String.format()) (3) | 2015.04.27 |