我想得到客户端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得到回应并立即访问所有字段?
由于
答案 0 :(得分:2)
有免费数据库以(大)平面文件或数据库格式向您提供此信息。其中一个例子是MaxMind GeoLite Country / City Databases。
然而,您应该知道这些细节中没有一个是准确的(除了可能国家/地区)。如果您尝试依赖它们,那么您应该重新考虑您的策略,IP无法可靠地“凝胶化”,并且这些数据库通常基于RIP到各个ISP及其当地办事处和/或交换机的IP IP分配他们所在的地方。最好的情况是,您将与最近的用户进行交流。
当然,如果用户实际拥有自己的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提供商。
答案 1 :(得分:0)
我想得到客户[...]的所有细节,如位置,等级,州,城市,国家,速度,[..]等
然后不要使用IP地址(因为我可能错过了最新的更新,但AFAIK IP地址不包含速度部分),但适当的function为:
iPhoneSettings.StartLocationServiceUpdates();
print("Location: " + iPhoneInput.lastLocation.latitude + " " +
iPhoneInput.lastLocation.longitude + " " +
iPhoneInput.lastLocation.altitude + " " +
iPhoneInput.lastLocation.horizontalAccuracy + " " +
iPhoneInput.lastLocation.timestamp);