以下是index.jsp 中的脚本代码                内容很简单,寥寥几句话而已,望高手驻足。 本人使用腾讯开放的一个端口,在前台页面jsp 内写了这么个方法。  今天让朋友在上海测试了一下,结果地址还是我本地的,有些无语了哎, 请问各位见多识广的大牛们,此错误在哪?朋友访问我的系统 存取到数据库的地址  为什么还是我本地的~
<%
                                //用户地理位置及其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 ="江苏省**市(内网)";
}
%>

解决方案 »

  1.   

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

  2.   

    问题明显了,因为每次都是你的jsp执行这个方法,而你的jsp是在你的本地服务器,虽然客户端在上海访问你的jsp,但jsp的执行还是在你本地服务器。而腾讯这个接口,谁向他建立 链接,就返回谁的IP信息,明显,每次都是你的JSP所在的服务器向腾讯建立连接,所以总是你本地服务器地址。
    如果你想获取访问jsp的客户端的归属地,可以到网上找个webservice服务(一搜一大堆),将客户端的IP从request中获取,再到webservice服务器查询。
      

  3.   

    ip传入的是本地服务器的看看能不能找到一个获取客户端ip的方法传进去request.getRemoteAddr();返回发送请求的客户端或最后一个代理的IP地址这里有方法:http://easin.iteye.com/blog/416565