如何确定网站访问者的位置?


19

如果我想为网站提供适合位置的内容,我可以使用哪些方法通过访客的IP或标题信息找到访客的大致位置?



4
您应该改为在StackOverflow.com上问这个问题。
乔纳斯(Jonas)2010年

7
我认为,总会存在适合于两者的交叉问题。但是,从GIS角度来看的答案可能与从编程角度来看的答案有所不同。
JamesRyan

Answers:


12

首先,您应该知道这些服务的准确性一直并将是很低的。

MaxMind Geolite城市是免费的。如果不够好,显然可以升级到更准确的付费版本。我不能说付费版本的质量,因为我从未使用过。

如果您喜欢SQL,请下载 CSV版本。将其加载到您选择的数据库中,然后查询。

更快且节省空间的选项是下载文件二进制Blob版本同一数据库,然后使用来自同一网站的特定于语言的API对其进行查询。

另外,我发现ipinfodb.com很有用。通过简单的HTTP GET查询。例如,要对stackoverflow.com进行地理位置定位,请尝试:

http://ipinfodb.com/ip_query.php?timezone=false&ip=69.59.196.211

这将返回一个包含纬度和经度的XML文件,如下所示:

<Response>
  <Ip>69.59.196.211</Ip>
  <Status>OK</Status>
  <CountryCode>US</CountryCode>
  <CountryName>United States</CountryName>
  <RegionCode>41</RegionCode>
  <RegionName>Oregon</RegionName>
  <City>Corvallis</City>
  <ZipPostalCode>97333</ZipPostalCode>
  <Latitude>44.4698</Latitude>
  <Longitude>-123.343</Longitude>
</Response>

5年后...。有人可以更新此答案吗?发表新答案?
Dror Atariah 2015年

5年后,大多数大地水准面系统无用,因为它们无法正确定位移动用户……
Mike Szyndel

9

您可以从IP推断的位置不是很可靠(即有时可以使用)。

如果你想有一个可靠的位置,考虑到地理位置API是部分HTML5。但是请注意,并不是所有的Web浏览器都支持它。


1
为HTML5 +1。您可以同时使用这两种方法-如果geoloation API失败,请使用IP。更多的网站支持意味着给浏览器供应商更大的压力,以支持更好的技术。
naught101

但是,我们谈论的是“访客的大致位置”,因此这可能不是您想要的。重要的一点是,HTML5地理位置将弹出一个令人恐惧的确认提示。是的位置通常是很多更详细的...但访问者同意的确认提示后,才。
哈里·伍德

3

Geo-Location-Javascript程序包是包装移动支持的选项,尽管它在大多数桌面浏览器上也能很好地工作(以我的经验来看,除了IE),它包装了提到的HTML5 GeoLocation API Sean。我发现移动浏览器对HTML5 API的支持非常差(不过这并不奇怪,因为它仍处于草稿阶段),所以这就是我选择此软件包的原因。

moblie设备在蜂窝和WiFi连接(如果设备具有GPS的话)上的结果也很好。桌面浏览器报告的位置与其他服务相当。



2

Quova http://www.quova.com/也提供服务。我昨天在GeoLoco与他们交谈。根据他们的说法(因此带一点盐),他们说他们在国际上比MaxMind好得多。在北美,它们大致相等。

请注意,对于移动电话,IP可能会映射到运营商拥有互联网网关的任何位置。如果您定位手机,也可以尝试使用-http: //www.loc-aid.com/



0

ipinfodb.com很好,但是他们当前离线:(

我正在我的api上使用它。这对我的天气来说很好,但是我不知道从昨天开始就一直离线。


1
谢谢您的回复。您是否注意到@FMark已经在此线程的较早答复中描述了此服务?
ub

它不是对ipinfodb的批评,但是我在使用货币转换器和Currency api工具之前遇到了问题,试图用它来自动确定位置并可以为他们提供与货币相关的直接位置,但是; S的发行站点很多,为3脱机几天,或者某些连接错误或故事,可能会影响您的网站性能,而Google
则不

Infodb看起来很棒,现在已经尝试了几个月。.他们有极限吗?我的意思是每天的访客?

0

如果您要根据其地理位置向他们提供内容或广告,则不能依靠从设备获取位置数据。即使他们在手机上,也很有可能关闭了GPS和wifi,并且必须征得他们的同意才能共享位置。

就像是:“嘿,您可以和我分享您的位置,以便为您提供与您的地理位置最相关的内容和广告吗?” 回应:“不!给我最好的内容和广告”

无需征求他们许可即查找位置的唯一方法是通过其IP地址。您可以在自己的服务器上安装数据库,并对其进行查询以查找IP地址的位置,或使用必须查询并获取结果的外部API。我正在使用ipgp地理位置api,效果很好。(http://www.ipgp.net/ip-address-geolocation-api/

By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.