/**
* 该方法获取请求客户端的真实IP地址 如果Web服务器部署在Proxy服务器之后,需要作特殊处理:
*
* @param request
* HTTP request
* @return client request source IP
*/
public static String getRequestIP(HttpServletRequest request) {
String ip = null;
for (String header : PROXY_IP_HEADERS) {
ip = request.getHeader(header);
if (StringUtils.isEmpty(ip) || "unknown".equalsIgnoreCase(ip)) {
// continue;
} else {
break;
}
}
if (StringUtils.isEmpty(ip) || "unknown".equalsIgnoreCase(ip)) {
ip = request.getRemoteAddr();
}
// Pass multiple Proxy servers
if (ip.indexOf(',') > 0) {
ip = ip.substring(0, ip.indexOf(','));
}
return ip;
}
/**
* @return (本机)服务器IP
*/
public static String getServerIP() {
String ip = "127.0.0.1";
try {
InetAddress localHost = InetAddress.getLocalHost();
ip = localHost.getHostAddress();
} catch (/* UnknownHost */Exception e) {
// e.printStackTrace();
}
return ip;
}
* 该方法获取请求客户端的真实IP地址 如果Web服务器部署在Proxy服务器之后,需要作特殊处理:
*
* @param request
* HTTP request
* @return client request source IP
*/
public static String getRequestIP(HttpServletRequest request) {
String ip = null;
for (String header : PROXY_IP_HEADERS) {
ip = request.getHeader(header);
if (StringUtils.isEmpty(ip) || "unknown".equalsIgnoreCase(ip)) {
// continue;
} else {
break;
}
}
if (StringUtils.isEmpty(ip) || "unknown".equalsIgnoreCase(ip)) {
ip = request.getRemoteAddr();
}
// Pass multiple Proxy servers
if (ip.indexOf(',') > 0) {
ip = ip.substring(0, ip.indexOf(','));
}
return ip;
}
/**
* @return (本机)服务器IP
*/
public static String getServerIP() {
String ip = "127.0.0.1";
try {
InetAddress localHost = InetAddress.getLocalHost();
ip = localHost.getHostAddress();
} catch (/* UnknownHost */Exception e) {
// e.printStackTrace();
}
return ip;
}