티스토리 뷰
웹어플리케이션을 개발하면 거의 필수적으로 하는 것이 바로 클라이언트 IP를 획득하는 것이다. 왜냐? 누가 뭘 하는지 알아야 문제가 생겼을때 대처가 가능하기 때문이다. 어떻게 IP를 얻어올수 있는가?
public static String getClientIp(HttpServletRequest req) {
String ip = req.getHeader("X-Forwarded-For");
if (ip == null) {
ip = req.getRemoteAddr();
}
return ip;
}
이렇게 간단하게 IP 정보를 획득할 수 있다. 그냥 req.getRemoteAddr() 을 통해서 가져올수도 있지만 내 웹서버를 통해서 들어오는 경우면 클라이언트 IP를 가져오는게 아닌 웹서버의 IP를 가져오기 때문에 클라이언트의 원래 IP를 식별하는 표준 헤더인 X-Forward-For 를 통해서 가지고 온다.
이렇게 해서 IP를 출력을 해보면
LOG.info("[IP : {}]", requestIP);
이런 IPv6 형식으로 출력이 되는걸 확인할 수 있다.
이럴 경우는 vm argument에 다음을 추가함으로써 간단하게 해결할 수 있다.
-Djava.net.preferIPv4Stack=true
를 VM arguments에 추가해 준다. 다시 실행해 보면
이런식으로 IPv4 형식으로 출력되는걸 확인할 수 있다.
끝!
'Lang > Java' 카테고리의 다른 글
JWT payload (claims, body) 부 암호화 및 복호화 방법 (0) | 2020.12.23 |
---|---|
CSV 파일 Univocity Parsers 이용해 간단히 파싱하기 (0) | 2020.10.19 |
Maven 프로젝트 JDK 8 에서 JDK 11로 migration (2) | 2020.06.04 |
java.awt.HeadlessException : no x11 display variable was set 오류가 발생할 때 해결방법 (0) | 2020.05.07 |
CORS (Cross-Origin Resource Sharing) 문제 filter로 해결하기 (0) | 2020.04.28 |
댓글