(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],保存数据库