0

如何使用 php 或 javascript 使用 IP 地址跟踪一个位置?类似这个网站的东西实现了:http ://whatismyipaddress.com/ip/216.157.85.163

4

2 回答 2

2

这是非常有可能的,无论是使用 PHP 还是 JavaScript。但是,有办法做到这一点,也有办法不这样做。就像生活中的任何事情一样,真的。

JavaScript

如果您的浏览器存在该navigator.geolocation对象,则它能够通过 GPS 或众包 wifi 数据获取位置。对象属性和方法在MDN上有相当详细的描述。

这种方法的明显优势是用户的设备将返回地理位置,而不是访问者的 IP 地址。这意味着它能够通过代理、TOR 等进行隧道传输。然而,这将提示用户输入位置 - 它这样做是正确的,否则想象一下混乱。

要使用它:

 if (navigator.geolocation && navigator.geolocation.getCurrentPosition) {
      navigator.geolocation.getCurrentPosition(function(position) {
      }, function() { alert("Couldn't get your position!"); });
 }

position将包含一个 Position 对象,其坐标位于coords.

PHP、JavaScript 等:通过 API

有许多 API 可以为您处理请求。你应该调查一对——谷歌提供了一个地理定位 API,还有ipinfodb ......有些有请求上限,有些没有。但是,它们通过 IP 工作。这意味着没有代理隧道和大致位置。

于 2013-05-30T23:20:28.230 回答
0

您需要访问 GeoLocation 数据库,将其发送到 IP,它将返回 IP 的坐标和/或城市名称。

您可以查看此 API 以开始使用:http: //freegeoip.net/

或者,在此处获取数据以运行您自己的数据:http: //dev.maxmind.com/geoip/legacy/geolite

或者,使用 Google 的 API 根据手机信号塔定位用户:https ://developers.google.com/maps/documentation/business/geolocation/

于 2013-05-30T23:19:40.067 回答