/**
* 获取请求的客户端IP(适用于公网与局域网).
*/
public static final String getIpAddr(final HttpServletRequest request){
if(request==null){
return ;
}
String ipAddr=request.getHeader("x-forwarded-for");
if(StringUtils.isEmpty(ipAddr)||"unknown".equalsIgnoreCase(ipAddr)){
ipAddr=request.getHeader("Proxy-Client-IP");
}
if(StringUtils.isEmpty(ipAddr)||"unknown".equalsIgnoreCase(ipAddr)){
ipAddr=request.getHeader("WL-Proxy-Client-IP");
}
if(StringUtils.isEmpty(ipAddr)||"unknown".equalsIgnoreCase(ipAddr)){
ipAddr=request.getHeader("HTTP_CLIENT_IP");
}
if(StringUtils.isEmpty(ipAddr)||"unknown".equalsIgnoreCase(ipAddr)){
ipAddr=request.getHeader("HTTP_X_FORWARDED_FOR");
}
if(StringUtils.isEmpty(ipAddr)||"unknown".equalsIgnoreCase(ipAddr)){
ipAddr=request.getRemoteAddr();
}
if(StringUtils.isEmpty(ipAddr)){
return null;
}
// 多个时,取第一个非unknown的ip
final String[] szAddr=ipAddr.split(",");
for(final String addr:szAddr){
if(!"unknown".equalsIgnoreCase(addr)){
ipAddr=addr;
break;
}
}
return ipAddr;
}
获取客户端IP地址
最新推荐文章于 2020-05-12 06:33:37 发布