/** * 获取客户端Ip * * @param request * @return */ public static String getIP(HttpServletRequest request) { String ip = request.getHeader("X-Real-IP"); if (ip == null || ip.length() == 0 || "unknown".equalsIgnoreCase(ip)) { ip = request.getHeader("x-forwarded-for"); } else { return ip; } if (ip == null || ip.length() == 0 || "unknown".equalsIgnoreCase(ip)) { ip = request.getHeader("Proxy-Client-IP"); } else { // 当有多级反向代理时,x-forwarded-for值为多个时取第一个ip地址 if (ip.indexOf(IP_SEPARATOR) != -1) { ip = ip.substring(0, ip.indexOf(IP_SEPARATOR)); } return ip; } if (ip == null || ip.length() == 0 || "unknown".equalsIgnoreCase(ip)) { ip = request.getHeader("WL-Proxy-Client-IP"); } else { return ip; } if (ip == null || ip.length() == 0 || "unknown".equalsIgnoreCase(ip)) { ip = request.getRemoteAddr(); } else { return ip; } if (ip == null || ip.length() == 0 || "unknown".equalsIgnoreCase(ip)) { ip = ""; } return "0:0:0:0:0:0:0:1".equals(ip) ? "127.0.0.1" : ip; }
/** * 获取登录ip */ public String getIp(){ HttpServletRequest request = this.getRequest(); String ip = ""; if (request.getHeader("x-forwarded-for") == null) { ip = request.getRemoteAddr(); }else{ ip = request.getHeader("x-forwarded-for"); } return ip; }