javaweb获取用户真实ip
来源:互联网 发布:知乎手机端发表文章 编辑:程序博客网 时间:2024/06/06 01:58
获取用户真实IP地址,不使用request.getRemoteAddr();的原因是有可能用户使用了代理软件方式避免真实IP地址,
可是,如果通过了多级反向代理的话,X-Forwarded-For的值并不止一个,而是一串IP值,究竟哪个才是真正的用户端的真实IP呢?
答案是取X-Forwarded-For中第一个非unknown的有效IP字符串。
如:X-Forwarded-For:192.168.1.110, 192.168.1.120, 192.168.1.130, 192.168.1.100
可是,如果通过了多级反向代理的话,X-Forwarded-For的值并不止一个,而是一串IP值,究竟哪个才是真正的用户端的真实IP呢?
答案是取X-Forwarded-For中第一个非unknown的有效IP字符串。
如:X-Forwarded-For:192.168.1.110, 192.168.1.120, 192.168.1.130, 192.168.1.100
用户真实IP为: 192.168.1.110
public static String getIpAddress(HttpServletRequest request) { 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.getRemoteAddr(); } return ip; }
阅读全文
0 0
- javaweb获取用户真实ip
- javaweb获取客户用户的真实ip。
- JavaWeb如何尽可能的获取到用户的真实IP
- 获取客户端用户真实ip
- 获取用户真实IP地址
- 获取用户真实ip方法
- Request获取用户真实IP
- Java获取用户真实IP
- Request获取用户真实IP
- Request获取用户真实IP
- Nginx获取真实用户IP
- Request获取用户真实IP
- 获取用户的真实ip
- 获取用户真实IP地址
- Java获取用户真实ip
- javaweb的request获取真实IP地址
- 如何获取用户的真实IP
- Jsp获取用户真实IP地址
- 关于微信公众平台本地测试ip如何加入IP白名单
- 【快速幂 && 公式推导】LightOJ
- PHP常用函数总结(180多个)
- maven简介
- php怎样获取用户的所在城市
- javaweb获取用户真实ip
- HTML5调用手机前置摄像头或后置摄像头拍照,canvas显示,经过Android测试
- IP和端口间的联系
- 设计模式_迭代子模式(19)
- hive一些基本操作
- 在搜索引擎强调原创之下如何正确发布外链
- Javaweb服务端开发学习(二)--MySQL和IDEA的简单使用
- MongoDB 更新篇
- angular1/angular2 嵌入外部链接