/***
* 获取ip地址
* @param request
* @return
*/
public static String getIpAddr(HttpServletRequest request) {
Object o=request.getParameter("_remote_ip");
logger.debug("getIpAddr _remote_ip:"+ o);
if(null!=o && !"".equals(o.toString())){
return o.toString();
}
long start=System.currentTimeMillis();
String ip = request.getHeader("x-forwarded-for");
if(ip == null || ip.length() == 0 || "unknown".equalsIgnoreCase(ip)) {
ip = request.getHeader("X-Real-IP");
}
if(ip == null || ip.length() == 0 || "unknown".equalsIgnoreCase(ip)) {
ip = request.getHeader("Proxy-Client-IP");
}
if(ip == null || ip.length() == 0 || "unknown".equalsIgnoreCase(ip)) {
ip = request.getHeader("WL-Proxy-Client-IP");
}
if(ip == null || ip.length() == 0 || "unknown".equalsIgnoreCase(ip)) {
ip = request.getHeader("REMOTE-HOST");
}
if(ip == null || ip.length() == 0 || "unknown".equalsIgnoreCase(ip)) {
ip = request.getRemoteAddr();
}
logger.debug("time :"+ (System.currentTimeMillis()-start) +" getIpAddr:"+ip);
return ip;
}
网友评论