
代码是没啥问题的..返回的都是内网的或者是 127.0.0.1
public static String getSpbillCreateIp(HttpServletRequest request) { if (request == null) { return null; } String ipString = request.getHeader("x-forwarded-for"); if (StringUtils.isBlnk(ipString) || "unknown".equalsIgnoreCase(ipString)) { ipString = request.getHeader("Proxy-Client-IP"); } if (StringUtils.isBlank(ipString) || "unknown".equalsIgnoreCase(ipString)) { ipString = request.getHeader("WL-Proxy-Client-IP"); } if (StringUtils.isBlank(ipString) || "unknown".equalsIgnoreCase(ipString)) { ipString = request.getRemoteAddr(); if(ipString.equals("127.0.0.1")) { InetAddress inet=null; try { inet = InetAddress.getLocalHost(); } catch (UnknownHostException e) { // TODO Auto-generated catch block e.printStackTrace(); } ipString = inet.getHostAddress(); } } // 多个路由时,取第一个非 unknown 的 ip final String[] arr = ipString.split(","); for (final String str : arr) { if (!"unknown".equalsIgnoreCase(str)) { ipString = ipString+" + " +str; // break; } } // String ipString = request.getRemoteAddr(); return ipString; }
1 akira 2016 年 9 月 13 日 在本机有放前端反代? |
3 geeglo 2016 年 9 月 13 日 via iPhone 你怎么测试的? |
4 zhuangzhuang1988 2016 年 9 月 13 日 dump 一下 header.. |
5 j8sec 2016 年 9 月 13 日 你还不如用 js+webrtc 来获取呢 |
6 jackmasa 2016 年 9 月 13 日 不要在本地跑这段代码。。。放服务器试试 |
8 fatpa 2016 年 9 月 14 日 nginx 配置问题 |