当前位置: 代码迷 >> Java Web开发 >> (SOS) 关于JSP 根据接口 获取用户地理位置的一些小疑点!进来都有分
  详细解决方案

(SOS) 关于JSP 根据接口 获取用户地理位置的一些小疑点!进来都有分

热度:10104   发布时间:2013-02-25 21:14:23.0
(SOS) 关于JSP 根据接口 获取用户地理位置的一些小问题!进来都有分~

以下是index.jsp 中的脚本代码 内容很简单,寥寥几句话而已,望高手驻足。 

本人使用腾讯开放的一个端口,在前台页面jsp 内写了这么个方法。 今天让朋友在上海测试了一下,

结果地址还是我本地的,有些无语了哎, 请问各位见多识广的大牛们,此错误在哪?

朋友访问我的系统 存取到数据库的地址 为什么还是我本地的~



Java code
<%                                    //用户地理位置及其IP                                String ipAndAddress ="";        try{        //获取当前IP 和地理位置信息 sdy        URL url = new Url("http://fw.qq.com/ipaddress"); //腾讯接口         URLConnection   connection   =   url.openConnection();         connection.connect();         BufferedReader inreader = new BufferedReader(                                                             new InputStreamReader(connection.getInputStream(),"GB2312"));        String str = null;        if(inreader.ready() )        {            str = inreader.readLine();        }        String[] strArr_0 = str.split("Array");        str = strArr_0[1].replaceAll("\"","");            String[] strArr_1 =str.substring(1,str.length()-2).split(",");         ipAndAddress = strArr_1[2]+" "+strArr_1[3];        }catch(Exception e){            ipAndAddress ="江苏省**市(内网)";        }%>


------解决方案--------------------------------------------------------
估计是方法内有异常了,所以直接进入
catch(Exception e){
ipAndAddress ="江苏省**市(内网)";
}


------解决方案--------------------------------------------------------
问题明显了,因为每次都是你的jsp执行这个方法,而你的jsp是在你的本地服务器,虽然客户端在上海访问你的jsp,但jsp的执行还是在你本地服务器。而腾讯这个接口,谁向他建立 链接,就返回谁的IP信息,明显,每次都是你的JSP所在的服务器向腾讯建立连接,所以总是你本地服务器地址。


如果你想获取访问jsp的客户端的归属地,可以到网上找个webservice服务(一搜一大堆),将客户端的IP从request中获取,再到webservice服务器查询。
------解决方案--------------------------------------------------------
ip传入的是本地服务器的。。。看看能不能找到一个获取客户端ip的方法传进去。。。

request.getRemoteAddr();返回发送请求的客户端或最后一个代理的IP地址

这里有方法:http://easin.iteye.com/blog/416565


------解决方案--------------------------------------------------------
直接取IPData[3],保存数据库