request.getRemoteAddr() ;
그러나 프록시나 Load Balancer 같은것을 겨쳐 오게 되는 경우 위의 방법으로는 정확한 아이피를 가져 오지 못하게 된다.
그래서 다음과 같이 메소드를 구현해서 사용 하는 것이 편리하다.
public String getClientIP(HttpServletRequest request) {
ip = request.getHeader("Proxy-Client-IP");
}
ip = request.getHeader("WL-Proxy-Client-IP"); // 웹로직
}
ip = request.getRemoteAddr() ;
}
}
** localhost에서 테스트 하는 경우 0:0:0:0:0:0:0:1 값으로 넘어 오는 경우가 있다.
이 값은 IPv6 에서 IPv4의 127.0.0.1 과 같은 값이다.
Tomcat으로 개발시 이게 문제가 되는 경우 vm arguments에 -Djava.net.preferIPv4Stack=true 값을 넣어 주면 된다.
감사합니다...ㅎ
답글삭제도움이 되었다니 저도 기쁩니다.. 처음으로 댓글을 달아 주셨네요. ^^
삭제감사합니다 ㅎㅎㅎ
답글삭제좋은정보감사합니다. 블로그에 담아둘게요~
답글삭제완전 감사합니다!! 덕분에 문제 해결됐어욘 ^_^
답글삭제정보 감사합니다~
답글삭제정보 감사합니다~
답글삭제저도 감사합니다~
답글삭제정말 좋은내용 감사합니다. 혹시 하나만 여쭤봐도될까요?
답글삭제ip가 127.0.0.1 이런식으로 나오는데 이것은 local인거같은데 지금 사용하고있는 ip를 출력하고 싶은데 어떤식으로 해야할지 모르겠네요,,
127.0.0.1 은 localhost가 맞습니다. 해당 정보는 브라우져가 주는 값으로 서버 설정으로 처리 하지는 못할 것 같습니다. 단, 브라우져에서 접속시 URL에 실제 아이피를 넣어서 접속하시면 해당 아이피가 나올것으로 예상됩니다.
삭제안녕하세요~좋은 정보감사합니다 ^^
답글삭제근데 로컬 이클립스에 적용한 후 개발서버(centos7)에 배포해서
테스트 해봤는데요~~클라이언트ip가 안찍히고 이상한 ip가 찍히는데... 혹시 어디를 확인해야되는지 아시는지요?
- 로컬 window7 테스트 완료
- 개발서버 centos7 클라이언트ip가 아닌 다른 ip
만약 내 컴퓨터의 IP가 아닌 다른 IP가 찍힌다면 로컬에서 개발서버로 접속하는 사이에 공유기 같은 다른 네트워크 대역으로 변환해주는 장비가 있을 겁니다.
삭제