获取http请求的真实IP地址

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了获取http请求的真实IP地址相关的知识,希望对你有一定的参考价值。

  1. /** 
  2.      * 获取http请求的真实IP地址  
  3.      * @param request 
  4.      * @return 
  5.      */  
  6.     // cjianquan 2016/8/2  
  7.     public static String getIPAddr(HttpServletRequest request){  
  8.         if (request == null)  
  9.             return null;  
  10.         String ip = request.getHeader("X-Forwarded-For");  
  11.         if (ip == null || ip.length() == 0 || "unknown".equalsIgnoreCase(ip))  
  12.             ip = request.getHeader("Proxy-Client-IP");  
  13.         if (ip == null || ip.length() == 0 || "unknown".equalsIgnoreCase(ip))  
  14.             ip = request.getHeader("WL-Proxy-Client-IP");  
  15.         if (ip == null || ip.length() == 0 || "unknown".equalsIgnoreCase(ip))  
  16.             ip = request.getHeader("HTTP_CLIENT_IP");  
  17.         if (ip == null || ip.length() == 0 || "unknown".equalsIgnoreCase(ip))  
  18.             ip = request.getHeader("HTTP_X_FORWARDED_FOR");  
  19.         if (ip == null || ip.length() == 0 || "unknown".equalsIgnoreCase(ip))  
  20.             ip = request.getRemoteAddr();  
  21.         if ("127.0.0.1".equals(ip) || "0:0:0:0:0:0:0:1".equals(ip))  
  22.             try {  
  23.                 ip = InetAddress.getLocalHost().getHostAddress();  
  24.             }  
  25.             catch (UnknownHostException unknownhostexception) {  
  26.             }  
  27.         return ip;  
  28.     }  

以上是关于获取http请求的真实IP地址的主要内容,如果未能解决你的问题,请参考以下文章

获取本地请求的真实IP地址

多级反向代理下,Java获取请求客户端的真实IP地址多种方法整合

web服务器获取请求客户端真实地址的方法

多级反向代理下,Java获取请求客户端的真实IP地址多中方法整合

获取请求主机IP地址,如果通过代理进来,则透过防火墙获取真实IP地址;

通过HttpRequest获取请求用户真实IP地址