从IP地址获取用户纬度和经度的最简单方法是啥[关闭]
Posted
技术标签:
【中文标题】从IP地址获取用户纬度和经度的最简单方法是啥[关闭]【英文标题】:What's the simplest way to get a user's latitude and longitude from an ip address [closed]从IP地址获取用户纬度和经度的最简单方法是什么[关闭] 【发布时间】:2009-10-16 06:26:29 【问题描述】:在我从事的大多数网络项目中,我总是需要用户的位置。我使用过Maxmind's GeoIp,但它涉及到您导入他们的数据集,并且需要不断更新。还有其他免费和付费服务,但我只想要一些简单的东西,可以在几秒钟内添加到任何网站。
所以这有点上当,因为我有一个简单的解决方案,详情如下,但我想看看是否有其他人使用这种技术,是否有更好的解决方案,或者是否有一些无法预料的陷阱。
【问题讨论】:
哇,这……有点毛骨悚然。 有没有办法在服务器端而不是客户端捕获这些数据? 我没有从谷歌看到任何关于准确性的数据,但我认为你获得的信息有多好有很多因素。一般来说,位置数据的 ip 对于非常低的精度(任何比城市更精细的东西)有点不可靠,但通常这就是我关心的全部。 马特,我想这取决于你想要做什么。显然,如果你在客户端上有这个,你可以将它发送到你的服务器,但如果你想真正从服务器端代码进行调用,这可能会很棘手,因为谷歌只是使用 http get 请求的 ip 作为输入。 很多时候精度甚至都达不到城市级别。国家可能是你能得到的最好的。 IP->Location 适用于 IP 地址的注册位置。例如,我家的 IP 注册到我的 IP,其地址在利兹。我在大约 400 英里外。 AOL 的 IP 地址来自 AOL 总部,但在美国各地使用(尽管在某些情况下它们被细分为州)。它永远不会非常准确。 【参考方案1】:我目前使用的实现我已经在其他几个问题中看到过,但我没有将其视为选定的答案。
我在我的博客thenullreference.com 中对此进行了详细说明,但简而言之:
基本上您需要做的就是加载 Google 的 API 加载器脚本:
<script type="text/javascript" src="http(s)://www.google.com/jsapi"></script>
然后您可以访问几个属性,为您提供详细的位置信息。
您要查看的对象是 google.loader.ClientLocation
ClientLocation.latitude ClientLocation.longitude ClientLocation.address.city ClientLocation.address.country ClientLocation.address.country_code - ISO 3166-1 国家代码 ClientLocation.address.region - 美国的国家特定区域,这是州*注意其中一些可以为空
有关此 API 的更多信息,请查看here
还有人用这个吗?有没有人有他们使用的一样简单和更好的东西?这种方法有问题吗?
我不知道此解决方案的覆盖范围/准确性,但我认为 Google 会对其进行更新,并且可能相当不错。
【讨论】:
还有:code.google.com/p/geo-location-javascript 我只在 wipmania 上选择了这个,因为我认为 google 更稳定/可靠让我的 prod 应用程序依赖它。看起来这两种方法通常是相同的。 当你得到经度和纬度时,你会自动知道国家 现在已弃用【参考方案2】:我使用了wipmania 免费的 JSONP 服务,我不太确定它的准确性,但使用起来真的很简单:
// an example using jQuery
$.getJSON('http://api.wipmania.com/jsonp?callback=?', function (data)
alert('Latitude: ' + data.latitude +
'\nLongitude: ' + data.longitude +
'\nCountry: ' + data.address.country);
);
检查运行here的sn-p。
【讨论】:
【参考方案3】:我使用 MaxMind GeoIP City/ISP/Organization(Web 服务),50,000 次查询的成本为 20 美元,并且始终更新(请参阅http://www.maxmind.com/app/web_services#city)。我喜欢我不需要担心数据库更新的事实,因为它都是在服务器上完成的。
我正在使用 php 发送客户端 IP 地址,作为回报,我得到纬度、经度以及其他有用的信息,如地区代码、城市、都市代码、区号、国家、ISP 和组织名称(如果知道) .
【讨论】:
以上是关于从IP地址获取用户纬度和经度的最简单方法是啥[关闭]的主要内容,如果未能解决你的问题,请参考以下文章