如何使用 php 或 javascript 使用 IP 地址跟踪一个位置?类似这个网站的东西实现了:http ://whatismyipaddress.com/ip/216.157.85.163
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 工作。这意味着没有代理隧道和大致位置。
您需要访问 GeoLocation 数据库,将其发送到 IP,它将返回 IP 的坐标和/或城市名称。
您可以查看此 API 以开始使用:http: //freegeoip.net/
或者,在此处获取数据以运行您自己的数据:http: //dev.maxmind.com/geoip/legacy/geolite
或者,使用 Google 的 API 根据手机信号塔定位用户:https ://developers.google.com/maps/documentation/business/geolocation/