如何使用php或javascript跟踪使用IP地址的位置?类似这样的网站实现了:http://whatismyipaddress.com/ip/216.157.85.163
这是非常可能的,无论是使用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/