获取请求主机IP地址,如果通过代理进来,则透过防火墙获取真实IP地址
2017-09-08 18:15
399 查看
/** * 获取请求主机IP地址,如果通过代理进来,则透过防火墙获取真实IP地址; * @Title: getIpAddress * @Description: TODO(这里用一句话描述这个方法的作用) * @param @param request * @param @return * @param @throws IOException 参数 * @return String 返回类型 * @throws */ public String getIpAddress(HttpServletRequest request) throws IOException { // 获取请求主机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; }
相关文章推荐
- Java 通过HttpRequest获取请求用户真实IP地址
- HttpServletRequest -- 获取请求主机真实的IP地址
- Java 通过HttpRequest获取请求用户真实IP地址
- J2ee获取通过Nginx代理的客户端真实IP地址
- 透过代理获取客户端请求的真实ip
- 获取请求主机IP地址(包括代理地址)
- Java获取请求客户端的真实IP地址
- Java获取请求客户端的真实IP地址
- 阿里云X-Forwarded-For 发现tomcat记录的日志全部来自于SLB转发的IP地址,不能获取到请求的真实IP。 - Draco - 博客频道 - CSDN.NET
- 获取使用nginx代理后的真实IP地址
- java获取用户访问的真实IP地址和代理IP
- JAVA获取请求的真实ip地址
- 多级反向代理下,Java获取请求客户端的真实IP地址多中方法整合
- 关于nginx反向代理后获取不到客户端的真实ip地址问题
- php 获取客户端的真实IP地址 和 检查客户端从什么地方过来的请求
- java 获取请求客户端的真实IP地址
- 获取HttpRequest请求的真实IP地址
- Java获取请求客户端的真实IP地址
- PHP获取用户的真实IP地址,非代理IP
- 获取通过nginx转发的请求IP地址