使用IP检测经度和纬度PHP

时间:2013-05-30 23:12:51

标签: php

如何使用php或javascript使用IP地址跟踪某个位置? 像这个网站这样的东西:http://whatismyipaddress.com/ip/216.157.85.163

2 个答案:

答案 0 :(得分:2)

很有可能,使用PHP或JavaScript。但是,有办法做到这一点,以及不这样做的方法。就像生活中的任何事情一样,真的。

的JavaScript

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

此方法的明显优势在于,用户的设备将返回地理位置, NOT 访问者的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工作。这意味着没有代理隧道和大致位置。

答案 1 :(得分: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/