/**
- 方法名:getRealIpAddr
- 功能:获取登录用户的ip
- @param request
- @return
*/
private String getIp(HttpServletRequest request) {
String ip = “”;
try {
ip = request.getHeader(“x-forwarded-for”);
logger.debug(“ip===============” + ip);
if (null == ip || 0 == ip.length() || “unknown”.equalsIgnoreCase(ip)) {
ip = request.getHeader(“Proxy-Client-IP”);
logger.debug(“Proxy-Client-IP===============” + ip);
}
if (null == ip || 0 == ip.length() || “unknown”.equalsIgnoreCase(ip)) {
ip = request.getHeader(“WL-Proxy-Client-IP”);
logger.debug(“WL-Proxy-Client-IP===============” + ip);
}
if (null == ip || 0 == ip.length() || “unknown”.equalsIgnoreCase(ip)) {
ip = request.getRemoteAddr();
logger.debug(“getRemoteAddr===============” + ip);
}
/*
* 多个IP按照’,'分割 对于通过多个代理的情况,第一个IP为客户端真实IP ‘***.***.***.***’.length() = 15
*/
if (null != ip && ip.length() > 15) {
if (ip.indexOf(",") > 0) {
ip = ip.substring(0, ip.indexOf(","));
}
}
logger.debug(“ip===============” + ip);
} catch (Throwable e) {
e.printStackTrace();
}
return ip;
}