서버에서 클라이언트의 실제 IP 가져오기
1722 단어 서버
/**
*
* @param request
* @return IP
*/
public static String getIp(HttpServletRequest request) {
//
String ip = null;
//
ip = request.getHeader("X-Forwarded-For");
if (isRealIP(ip)) {
return getRealIp(ip);
}
//
ip = request.getHeader("Proxy-Client-IP");
if (isRealIP(ip)) {
return getRealIp(ip);
}
//
ip = request.getHeader("WL-Proxy-Client-IP");
if (isRealIP(ip)) {
return getRealIp(ip);
}
//
ip = request.getHeader("HTTP_CLIENT_IP");
if (isRealIP(ip)) {
return getRealIp(ip);
}
//
ip = request.getHeader("HTTP_X_FORWARDED_FOR");
if (isRealIP(ip)) {
return getRealIp(ip);
}
//
ip = request.getParameter("__fromReferIP");
if (isRealIP(ip)) {
return getRealIp(ip);
}
// NGINX
ip = request.getHeader("X-Real-IP");
if (isRealIP(ip)) {
return getRealIp(ip);
}
ip = request.getRemoteAddr();
//
return ip;
}
/**
* @param ip
* @return
*/
private static boolean isRealIP(String ip) {
return StringUtils.isNotBlank(ip) && !"unknown".equalsIgnoreCase(ip);
}
/**
* @param ip
* @return
*/
private static String getRealIp(String ip) {
//
if (ip.indexOf(",") != -1) {
return StringUtils.left(ip.split(",")[0], 15);
}
return ip;
}
이 내용에 흥미가 있습니까?
현재 기사가 여러분의 문제를 해결하지 못하는 경우 AI 엔진은 머신러닝 분석(스마트 모델이 방금 만들어져 부정확한 경우가 있을 수 있음)을 통해 가장 유사한 기사를 추천합니다:
집 서버 설계 (하드웨어 편)자신의 Redmine이나 ownCloud를 운용하기 위해 사쿠라 VPS, DigitalOcean, OpenShift 등을 놀랐습니다만, 침착 해 왔으므로 현상을 정리하고 싶습니다. 먼저 하드웨어 구성을 정리합니다. ...
텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
CC BY-SA 2.5, CC BY-SA 3.0 및 CC BY-SA 4.0에 따라 라이센스가 부여됩니다.