博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
java获得IP
阅读量:4190 次
发布时间:2019-05-26

本文共 1715 字,大约阅读时间需要 5 分钟。

public String getIp(HttpServletRequest request) {
2. String ip= request.getHeader("X-Forwarded-For");
3. if (ip== null || ip.length() == 0 || "unknown".equalsIgnoreCase(ip))
4. ip= request.getHeader("Proxy-Client-IP");
5. if (ip== null || ip.length() == 0 || "unknown".equalsIgnoreCase(ip))
6. ip= request.getHeader("WL-Proxy-Client-IP");
7. if (ip== null || ip.length() == 0 || "unknown".equalsIgnoreCase(ip))
8. ip= request.getHeader("HTTP_CLIENT_IP");
9. if (ip== null || ip.length() == 0 || "unknown".equalsIgnoreCase(ip))
10. ip= request.getHeader("HTTP_X_FORWARDED_FOR");
11. if (ip== null || ip.length() == 0 || "unknown".equalsIgnoreCase(ip))
12. ip= request.getRemoteAddr();
13. if ("127.0.0.1".equals(ip) || "0:0:0:0:0:0:0:1".equals(ip)){
14. try {
15. ip= InetAddress.getLocalHost().getHostAddress();
16. }
17. catch (UnknownHostException e) {
18. e.printStackTrace();
19. }
20. }
21. return ip
22.}
Java代码 复制代码 收藏代码
1./**
2. * 获取访问者IP
3. *
4. * 在一般情况下使用Request.getRemoteAddr()即可,但是经过nginx等反向代理软件后,这个方法会失效。
5. *
6. * 本方法先从Header中获取X-Real-IP,如果不存在再从X-Forwarded-For获得第一个IP(用,分割),
7. * 如果还不存在则调用Request .getRemoteAddr()。
8. *
9. * @param request
10. * @return
11. */
12. public static String getIpAddr(HttpServletRequest request) {
13. String ip = request.getHeader("X-Real-IP");
14. if (!StringUtils.isBlank(ip) && !"unknown".equalsIgnoreCase(ip)) {
15. return ip;
16. }
17. ip = request.getHeader("X-Forwarded-For");
18. if (!StringUtils.isBlank(ip) && !"unknown".equalsIgnoreCase(ip)) {
19. // 多次反向代理后会有多个IP值,第一个为真实IP。
20. int index = ip.indexOf(',');
21. if (index != -1) {
22. return ip.substring(0, index);
23. } else {
24. return ip;
25. }
26. } else {
27. return request.getRemoteAddr();
28. }
29. }

转载地址:http://gznoi.baihongyu.com/

你可能感兴趣的文章
目标和
查看>>
跳跃游戏
查看>>
买卖股票的最佳时机 II
查看>>
分发饼干
查看>>
最低票价
查看>>
删列造序
查看>>
使括号有效的最少添加
查看>>
令牌放置
查看>>
回溯法思想
查看>>
子集和问题
查看>>
旅行售货员问题
查看>>
区域和检索 - 数组不可变
查看>>
整数分解
查看>>
最长有效括号
查看>>
救生艇
查看>>
Android中自定义圆形图片(一)
查看>>
Android中ViewPager自动加手动轮播
查看>>
Android中Fragment点击切换与添加ViewPager滑动切换
查看>>
Java多线程-阻塞队列BlockingQueue
查看>>
Windows:Apache与Tomcat集群调优
查看>>