【问题标题】:Show location on map by IP address in PHP在 PHP 中按 IP 地址在地图上显示位置
【发布时间】:2016-02-25 18:49:41
【问题描述】:

我有一个包含用户信息(包括 IP 地址)的数据库,我想知道是否可以通过在 php 中从数据库中获取 IP 来在世界地图上显示用户位置?

任何帮助表示赞赏:)

【问题讨论】:

标签: php sql


【解决方案1】:

要查看您网站访问者的 IP 地址,请将此代码插入您希望它出现的区域。
回声 $_SERVER["REMOTE_ADDR"];
然后,您可以使用 API 定位您的 GeoLite MaxMind 访问者 http://dev.maxmind.com/geoip/legacy/geolite/

【讨论】:

    【解决方案2】:

    可以将 IP 地址与物理位置相关联,但只是松散的。 IP 地址未注册到单个用户的确切位置。您将找到一个 IP 地址的管理域的位置......但仍然在世界地图上应该足够好。

    基本上它是这样工作的。你会得到一个名为geoip 的工具,它应该与一个名为geoiplookup 的工具一起打包。然后转到http://dev.maxmind.com/geoip/legacy/geolite/ 下载 GeoLiteCity.dat。然后你运行这个命令。

    geoiplookup -f /path/to/GeoLiteCity.dat <target IP or hostname>
    

    比如刚才我跑了

    geoiplookup -f ~/Downloads/GeoLiteCity.dat stackoverflow.com
    

    我得到了这个输出

    GeoIP City Edition, Rev 1: US, CA, California, San Francisco, 94107, 37.769699, -122.393303, 807, 415
    

    使用 PHP 脚本中的内置 exec 函数应该很容易。

    【讨论】:

    • 谢谢 :) 但是我怎样才能让这些信息显示在地图上呢?
    • 您可以将字符串解析为 San Francisco, CA 94107 以获取邮政地址,或者您可以将字符串解析为北纬 37.769699 度西经 122.393303 度。无论哪种情况,您都可以获取该数据并使用 Google Maps API 之类的地图 API 并绘制位置。
    • @JonnyUK 忘记在我的评论中标记你,但我回复了。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2016-05-10
    • 1970-01-01
    • 2013-07-05
    • 1970-01-01
    • 1970-01-01
    • 2012-02-13
    • 2011-05-24
    相关资源
    最近更新 更多