【问题标题】:Getting geolocation from IP address从 IP 地址获取地理位置
【发布时间】:2014-02-13 21:04:17
【问题描述】:

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

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

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

【问题讨论】:

  • 你为什么不google一下??
  • @Vicky Gonsalves:我做到了,但它不能正常工作......
  • 发布您的代码不起作用,您可以获得修复它的帮助。这个问题太模糊了,未知数太多,无法按原样回答。
  • 我试过 gmaps.js
  • 你的问题似乎重复了stackoverflow.com/questions/4937517/…

标签: javascript php jquery codeigniter google-maps


【解决方案1】:

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

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

【讨论】:

    【解决方案2】:

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

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

    【讨论】:

      【解决方案3】:

      只需使用 ipinfo.io

      http://ipinfo.io/

      它使用了一个位置api,我们可以发布IP地址,它将位置详细信息作为json返回:

      我们可以通过 json 响应到 google Maps API 的经度和经度详细信息在地图上显示位置。

      这是我使用的代码:

      此脚本根据 json 响应创建具有纬度和经度的 Google 地图实例:

      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..

      【讨论】:

      • 那是使用已弃用的 API v2 吗?
      • 我从来没有说过它不是,我只是提到它不是(或接近)当前版本的 API。
      • 得到它的工作......它还返回了我需要的城市和地区......谢谢......
      【解决方案4】:

      Google Maps API 将使用 geoip 为您完成查找位置的工作。如果用户在移动设备上或有更准确的定位方式(如 GPS),它将改用它。

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

      如果您绝对需要仅从 IP 获取位置,您可以抓取 third-party tools 以获取此信息。如果您在较大的项目中使用它,则应事先确保您获得许可。

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 2011-09-20
        • 1970-01-01
        • 2010-09-29
        • 2018-03-30
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多