获取请求主机IP地址(包括代理地址)
2017-08-21 09:48
405 查看
public final static String getIpAddress(HttpServletRequest request){ // 获取请求主机IP地址,如果通过代理进来,则透过防火墙获取真实IP地址 String ip = request.getHeader("X-Forwarded-For"); if (ip == null || ip.length() == 0 || "unknown".equalsIgnoreCase(ip)) { 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.getRemoteAddr(); } } else if (ip.length() > 15) { String[] ips = ip.split(","); for (int index = 0; index < ips.length; index++) { String strIp = (String) ips[index]; if (!("unknown".equalsIgnoreCase(strIp))) { ip = strIp; break; } } } return ip; }
相关文章推荐
- 获取请求主机IP地址,如果通过代理进来,则透过防火墙获取真实IP地址
- linux c 网络编程:用域名获取IP地址或者用IP获取域名 网络地址转换成整型 主机字符顺序与网络字节顺序的转换
- Java 获取请求主机IP地址
- linux c 网络编程:用域名获取IP地址或者用IP获取域名 网络地址转换成整型 主机字符顺序与网络字节顺序的转换
- 计算机硬件通用功能类:硬件信息控制器(主机名,cpu编号,网卡地址,MAC地址,主硬盘编号,ip地址,获取最大线程数,验证服务IP)
- 获取请求主机IP地址IPUtil
- 获取请求地址的IP地址
- C#获取真实的客户端IP地址,包括内网代理
- Java 获取请求主机IP地址
- C#获取真实的客户端IP地址,包括内网代理
- HttpServletRequest -- 获取请求主机真实的IP地址
- Linux 接口地址的获取-暨获取本地IP地址(所有地址,包括IPv4,IPV6,MAC 地址)
- Linux 接口地址的获取-暨获取本地IP地址(所有地址,包括IPv4,IPV6,MAC 地址)
- WCF接口获取请求的IP地址
- java获取当前请求的url地址及各参数
- Android获取WIFI状态下的IP地址以及MAC地址
- 使用InterAddress类获取本地主机的本地名和IP地址
- 多级代理下Nginx获取真实用户IP地址的总结
- 获取当前请求的IP地址
- Tomcat获取Nginx反向代理的客户端IP地址