728x90
반응형
아마 접근IP를 추출하기 위해 많이 쓰는 메소드로
request.getRemoteAddr()가 있을 것 이다.
근데 100% 정확한 ip 추출이 되지 않는 것을 최근 경험하여 검색하고 수정 한 것을 다른 사람들도 편하게
찾을 수 있게 남겨보려 한다.
우선 원인은 중간에 L4나 프록시 서버 등이 생기며 변조되는 문제였다.
내 업무지의 경우 클라우드로 나가면서 보안을 위해 여러 장비를 통해 web에 전달되다보니
발생하였다. (WAF -> LB -> WEB)
그래도 마냥 불가능하진 않다.
추가적인 header들이 생기면서 원래의 ip가 저장이 된다고 한다.
이걸 이용하여서 추출하여 사용하고 싶은곳에 사용 할 수 있다.
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
|
String usrip = "";
if(usrip.equals("")) {
usrip = request.getHeader("X-Forwarded-For");
}
if (usrip == null) {
usrip = request.getHeader("Proxy-Client-IP");
}
if (usrip == null) {
usrip = request.getHeader("WL-Proxy-Client-IP");
}
if (usrip == null) {
usrip = request.getHeader("HTTP_CLIENT_IP");
}
if (usrip == null) {
usrip = request.getHeader("HTTP_X_FORWARDED_FOR");
}
if (usrip == null) {
usrip = request.getRemoteAddr();
}
|
cs |
출처 : https://stackoverflow.com/questions/4678797/how-do-i-get-the-remote-address-of-a-client-in-servlet
728x90
반응형
'언어 > JAVA' 카테고리의 다른 글
에라토스테네스의 체 (0) | 2022.11.15 |
---|---|
배열 복사 : clone() 과 arraycopy() (0) | 2022.11.09 |
JAVA 엑셀다운로드시 파일명 한글 오류 (0) | 2022.11.08 |
첨부파일 다운시 파일명 공백이 +로 뜨는 부분 해결 (0) | 2022.11.08 |
poi 엑셀 셀 병합 (0) | 2022.08.31 |