/** * 标识要从哪些消息头中获取IP地址 */ private static final String[] getIpArray = {"HTTP_X_FORWARDED_FOR", "X-Forwarded-For", "Proxy-Client-IP", "WL-Proxy-Client-IP", "HTTP_CLIENT_IP"}; /** * 获取请求的IP地址 * <功能详细描述> * @param request * @return * @see [类、类#方法、类#成员] */ public static String getIP(HttpServletRequest request) { String ip = ""; for (int i = 0, l = getIpArray.length; i < l; i++) { ip = request.getHeader(getIpArray[i]); if (ip != null && ip.length() != 0 && !"unknown".equalsIgnoreCase(ip)) { return ip; } } if (ip == null || ip.length() == 0 || "unknown".equalsIgnoreCase(ip)) { ip = request.getRemoteAddr(); } return ip; }