【发布时间】:2016-02-25 18:49:41
【问题描述】:
我有一个包含用户信息(包括 IP 地址)的数据库,我想知道是否可以通过在 php 中从数据库中获取 IP 来在世界地图上显示用户位置?
任何帮助表示赞赏:)
【问题讨论】:
-
欢迎来到 SO,请在提问时更具体一点:您尝试过什么,您期望什么等。请参阅how to ask
我有一个包含用户信息(包括 IP 地址)的数据库,我想知道是否可以通过在 php 中从数据库中获取 IP 来在世界地图上显示用户位置?
任何帮助表示赞赏:)
【问题讨论】:
要查看您网站访问者的 IP 地址,请将此代码插入您希望它出现的区域。
回声 $_SERVER["REMOTE_ADDR"];
然后,您可以使用 API 定位您的 GeoLite MaxMind 访问者
http://dev.maxmind.com/geoip/legacy/geolite/
【讨论】:
可以将 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 函数应该很容易。
【讨论】: