Java获取客户请求真实IP

public static String getClientIp(HttpServletRequest request) {
		String ip = null;
		
		// 先从X-Forwarded-For中取得第一不是unknown的IP作为客户端的真实IP
		String proxyIpHeader = request.getHeader("X-Forwarded-For");
		if (proxyIpHeader != null && proxyIpHeader.length() != 0) {
			String[] ipArray = proxyIpHeader.split(",");
			for (int i = 0; i < ipArray.length; i++) {
				if (!"unknown".equalsIgnoreCase(ipArray[i])) {
					ip = ipArray[i];
					break;
				}
			}
		}

		// 如果没有X-Forwarded-For这个header,则直接取客户端IP
		if (ip == null) {
			ip = request.getRemoteAddr();
		}
		
		return ip;
	}

你可能感兴趣的:(Java获取客户请求真实IP)