javaweb獲取客戶端IP終極增強版

javaweb獲取客戶端ip的時候,少數時候會獲取不到,具體狀況也不是很清楚,大概是手機客戶端有些安裝了代理軟件之類的,出現這種情況的時候,使用常見的獲取ip方式就有些不夠用了,下面收集了7個方式來獲取客戶端ip,通過服務器3天的驗證,沒有出現獲取不到客戶端ip的狀況。java

/**
	 * 獲取客戶端IP
	 * */
	public String getIpAddr() {
		String ip = request.getHeader("x-forwarded-for");
		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("HTTP_CLIENT_IP");
		}
		if (ip == null || ip.length() == 0 || "unknown".equalsIgnoreCase(ip)) {
			ip = request.getHeader("HTTP_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.getRemoteAddr();
		}
		
		return ip;
    }
相關文章
相關標籤/搜索