从IP地址获取地理位置

时间:2014-01-23 10:55:20

标签: javascript php jquery codeigniter google-maps

我需要跟踪用户详细信息,因为该客户端的位置和IP地址是必需的 我从

获得了IP地址
$this->input->ip_address();

在codiigniter。
现在问题是如何使用各自的IP地址在谷歌地图中定位

4 个答案:

答案 0 :(得分:7)

只需在

使用 ipinfo.io

http://ipinfo.io/

它使用了一个我们可以发布ip地址的位置api,它将以json的形式返回位置详细信息:

我们可以使用json响应google Maps API的langitude和经度详细信息在地图上显示loacation。

以下是我使用的代码:

此脚本使用lattitude&创建一个Google Map实例。来自json回应的经度:

jQuery(document).ready(function(){
    jQuery.get("http://ipinfo.io/202.88.237.138", function (response)
               {
                   var lats = response.loc.split(',')[0]; 
                   var lngs = response.loc.split(',')[1];
                   map = new GMaps({
                       el: '#map',
                       lat: lats, //latitude
                       lng: lngs //longitude
                   });

               }, "jsonp");
});

,地图将显示在:

<div style="border:1px solid red; height:745px;" id="map"></div>

运行此版本需要使用Google Maps API gmaps.js

答案 1 :(得分:3)

作为一种可行的(虽然通常不太准确)替代方案,HTML5 spec includes Geolocation。随着HTML 5变得越来越普遍,我认为我们可以期待它在未来成为标准。它也不需要使用外部Web服务或库。地理定位所需的一切都内置于客户端浏览器中。

我认为使用的主要方法是指定的IP地址。

答案 2 :(得分:2)

Google Maps API将为您执行使用geoip查找位置的工作。如果用户在移动设备上或者具有更准确的自定位方式(如GPS),则会使用该方式。

这是一个很好的起点:
https://google-developers.appspot.com/maps/documentation/javascript/examples/map-geolocation

如果您只需要从IP获取位置,则可以使用third-party tools来获取此信息。如果你在一个更大的项目中使用它,你应该事先确定你有权限。

答案 3 :(得分:0)

freegeoip.net提供了一个公共HTTP API来搜索IP地址的地理位置。它使用与城市相关联的IP地址数据库以及时区,纬度和经度等其他相关信息。

每小时最多允许15,000个查询。 如果您需要更多,可以将freegeoip作为Web服务器运行在您自己的基础架构上。请参阅:freegeoip on github