1

我想获取客户端 IP 的所有详细信息,例如位置、纬度、州、城市、国家、速度、isp 等,就像这些人在做什么

http://www.ip-adress.com/ip_tracer/

我想在 Json 或 XMl 中得到理想的响应,这样我就不必解析 HTML。目前我正在解析html

myIP = myExtIPWWW.text;
myIP=myIP.Substring(myIP.IndexOf("Your IP address is:"),myIP.IndexOf("</h3>"));
myIP=myIP.Substring(myIP.IndexOf(":")+1);
myIP=myIP.Substring(0,myIP.IndexOf("<"));

但我不喜欢这种方法。有没有更好的方法可以让我在 Json 中得到响应并立即访问所有字段?

谢谢

4

2 回答 2

2

有免费的数据库以(大)平面文件或数据库格式向您提供这些信息。MaxMind GeoLite Country/City Databases就是一个这样的例子。

但是,您应该知道,这些细节中没有一个是准确的可能国家除外)。如果您试图在任何事情上依赖它们,那么您可能应该重新考虑您的策略,IP 无法可靠地“定位”,并且这些数据库通常基于 RIPE IP 将 IP 分配给各个 ISP 及其当地办事处和/或交易所来工作他们所在的地方。充其量,您将在离您的用户最近的交易所工作。

当然,如果用户实际上拥有自己的 ISP/IP,则这并不适用,因为他们可以将这些详细信息作为任何内容提供给 RIPE,而这将在您的数据库中。


只是为了举例说明这些细节如何如此错误,您上面引用的网站给了我这些细节:

My IP address state:     London, City of
My IP address city:  London
My IP address latitude:  51.5142
My IP address longitude:     -0.0931
My ISP [?]:  VAIONI Group Ltd

我在曼彻斯特,VAIONI 是经销商/连接端点,而不是我的 ADSL 提供商。

于 2012-07-10T11:39:49.650 回答
0

我想获取客户 [..] 的所有详细信息,例如位置、纬度、州、城市、国家、速度、[..] 等

然后不要使用 IP 地址(因为我可能错过了后期更新,但 AFAIK IP 地址不包含速度部分),但适当的功能

  iPhoneSettings.StartLocationServiceUpdates();
  print("Location: " + iPhoneInput.lastLocation.latitude + " " + 
                       iPhoneInput.lastLocation.longitude + " " + 
                       iPhoneInput.lastLocation.altitude + " " + 
                       iPhoneInput.lastLocation.horizontalAccuracy + " " + 
                       iPhoneInput.lastLocation.timestamp);
于 2012-07-10T11:44:03.017 回答