2014-01-23 200 views
7

我需要跟踪用户详细信息,需要客户端的位置和IP地址。
我从从IP地址获取地理位置

$this->input->ip_address(); 

在codiigniter了IP地址。
现在的问题是我怎样才能使他们的位置在谷歌地图上使用其各自的IP地址

+2

为什么你不谷歌它? –

+1

@Vicky Gonsalves:我做了,但它不能正常工作... –

+0

发布你的代码不工作,你可以得到修复它的帮助。这个问题太模糊,并且有太多未知因素需要回答。 –

回答

7

只使用ipinfo.io

http://ipinfo.io/

它使用一个定位API,我们可以张贴的IP地址,它会返回位置详情JSON:

我们可以能够显示地图上的loacation,从json响应到Google Maps API的经度和纬度细节。

这里是我使用的代码:

这个脚本创建从JSON响应lattitude &经度谷歌地图实例:

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

是否使用了API的弃用版本? – Swires

+0

现在为我工作。 –

+0

我从来没有说过它不是,我只是提到它不是(或接近)当前版本的API。 – Swires

2

谷歌地图API将为您找到使用geoip的位置的工作。如果用户使用的是移动设备,或者有更准确的定位方式(如GPS),它就会使用它。

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

如果您确实需要从IP获取位置只,还有third-party tools,你可以凑来获取这些信息。如果您在较大的项目中使用此功能,则应事先确保您有权限。

3

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

我相信主要使用的方法是指定的IP地址。

0

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

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