java如何獲取訪問真實IP地址?


java如何獲取訪問真實IP地址

 

解決方法:

獲取請求主機IP地址,如果通過代理進來,則透過防火牆獲取真實IP地址,如果沒有代理,則獲取真實ip

public static String getIp(HttpServletRequest request){

//代理進來,則透過防火牆獲取真實IP地址

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");

   }

 

//如果沒有代理,則獲取真實ip

if (ip == null || ip.length() == 0 || "unknown".equalsIgnoreCase(ip)) {

ip = request.getRemoteAddr();

}

 

return ip.equals("0:0:0:0:0:0:0:1")?"127.0.0.1":ip;

}


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM