我想获得客户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中获得响应,并直接访问所有字段?
谢谢
发布于 2012-07-10 19:39:50
有免费的数据库以(大的)平面文件或数据库格式向您提供此信息。MaxMind GeoLite Country / City Databases就是一个这样的例子。
然而,你应该知道,这些细节中没有一个是准确的,(可能除了国家)。如果你试图在任何事情上依赖它们,那么你可能应该重新考虑你的策略,IP不能可靠地“定位”,这些数据库通常基于成熟的IP分配给各个ISP及其本地办公室和/或他们所在的交换机构。在最好的情况下,您将在最接近您的用户的exchange上工作。
当然,如果用户实际上拥有自己的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-10 19:44:03
我想获取客户端的所有详细信息。比如位置,时差,州,城市,国家,速度,..等
然后不要使用IP地址(因为我可能错过了较晚的更新,但AFAIK地址不包含速度部分),而是使用相应的function:
iPhoneSettings.StartLocationServiceUpdates();
print("Location: " + iPhoneInput.lastLocation.latitude + " " +
iPhoneInput.lastLocation.longitude + " " +
iPhoneInput.lastLocation.altitude + " " +
iPhoneInput.lastLocation.horizontalAccuracy + " " +
iPhoneInput.lastLocation.timestamp);https://stackoverflow.com/questions/11412329
复制相似问题