有个需求,需要得知网站访问者的大概地理位置,经纬度。应该怎么办啊,求给点思路谢谢,
百度了半天,也找不到获取公网ip的办法
java如何获取公网IP?如果无法获取如何对访问者进行定位?
- 写回答
- 好问题 0 提建议
- 关注问题
- 邀请回答
-
2条回答 默认 最新
ky与你 2016-06-13 12:31关注public String getRemortIP(HttpServletRequest request) { if (request.getHeader("x-forwarded-for") == null) { return request.getRemoteAddr(); } return request.getHeader("x-forwarded-for"); }//获得客户端真实IP地址的方法二: public String getIpAddr(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.getRemoteAddr(); } return ip; }public String getAddressByIP(String strIP) { try { URL url = new URL( "http://ip.qq.com/cgi-bin/searchip?searchip1=" + strIP); URLConnection conn = url.openConnection(); BufferedReader reader = new BufferedReader(new InputStreamReader(conn.getInputStream(), "GBK")); String line = null; StringBuffer result = new StringBuffer(); while((line = reader.readLine()) != null) { result.append(line); } reader.close(); strIP = result.substring(result.indexOf( "该IP所在地为:" )); strIP = strIP.substring(strIP.indexOf( ":") + 1); String province = strIP.substring(6, strIP.indexOf("省")); String city = strIP.substring(strIP.indexOf("省") + 1, strIP.indexOf("市")); return strIP+province+city; } catch( IOException e) { return "读取失败"; } }127.0.0.1
127.0.0.1
IP地址:Lenovo-PC/172.27.35.1
这几个方法我都试了,都无法获取公网ip,解决 无用评论 打赏 举报