반응형
Java 요청 IP 확인 방법
HttpServletRequest객체에서 IP주소 받아오기
요청한 클라이언트의 IP주소는 HttpServletRequst 객체를 통해 받아올 수 있다.
protected String getClientIpAddr(HttpServletRequest req) {
String ip = req.getHeader("X-Forwarded-For");
log.info(">>>> X-FORWARDED-FOR : " + ip);
if (ip == null || ip.length() == 0 || "unknown".equalsIgnoreCase(ip)) {
ip = req.getHeader("Proxy-Client-IP");
log.info(">>>> Proxy-Client-IP : " + ip);
}
if (ip == null || ip.length() == 0 || "unknown".equalsIgnoreCase(ip)) {
ip = req.getHeader("WL-Proxy-Client-IP");
log.info(">>>> WL-Proxy-Client-IP : " + ip);
}
if (ip == null || ip.length() == 0 || "unknown".equalsIgnoreCase(ip)) {
ip = req.getHeader("HTTP_CLIENT_IP");
log.info(">>>> HTTP_CLIENT_IP : " + ip);
}
if (ip == null || ip.length() == 0 || "unknown".equalsIgnoreCase(ip)) {
ip = req.getHeader("HTTP_X_FORWARDED_FOR");
log.info(">>>> HTTP_X_FORWARDED_FOR : " + ip);
}
if (ip == null || ip.length() == 0 || "unknown".equalsIgnoreCase(ip)) {
ip = req.getRemoteAddr();
}
log.info(">>>> Result : IP Address : "+ip);
return ip;
}
참고문서
Intellij에서 Ipv4 출력 설정
위 방법으로 print또는 log를 찍게 된다면 ipv6형식의 ip가 출력된다.
intellij기준 ipv4형식으로 출력을 원한다면 다음과 같이 설정한다.
- 톰캣(또는 사용자의 WAS) configuration의 VM options
- 설정 코드 추가
-Djava.net.preferIPv4Stack=true -Djava.net.preferIPv4Addresses=true
- 재실행
반응형
'ETC > 개발환경 설정' 카테고리의 다른 글
[Ubuntu]Swap메모리 설정하기 (0) | 2022.04.22 |
---|---|
[cors-anywhere] 나만의 프록시 서버를 만들어보자 (0) | 2022.04.13 |
intellij properties 한글 깨짐 (0) | 2022.03.09 |
Hosts를 통한 IP접속 경로 수정 (0) | 2021.07.23 |
이클립스 eclipse .js 파일 흑백으로 나올 때 (0) | 2021.05.22 |
[centos] 현재 시간 설정 한국시간으로 변경하기 (3) | 2021.04.25 |