【发布时间】:2015-03-26 22:05:56
【问题描述】:
我需要从用户 ip 获取国家名称。据我所知,可以通过两种方式完成:
- 调用第三方 api(但这可能会很慢)
- 使用自己的数据库
所以,我从以下站点下载 IP 数据库: http://dev.maxmind.com/geoip/legacy/geolite/
并在我的数据库中创建一个表,然后使用 php 脚本获取 ip,然后是国家/地区
但它不适用于我自己的国家:(
但在我检查我的 vps 时可以工作
目前我的ip是:180.211.255.204
所以,我认为可能是 db 没有更新。
但是当我尝试与该网站演示测试相同的 ip 时,它工作正常:
https://www.maxmind.com/en/geoip-demo
那么问题出在哪里?是数据库不同还是我的代码有问题?
我很困惑:(
这是我用来获取国家/地区的代码:
$strSQL="SELECT `country_name` FROM `IPCountry` WHERE INET_ATON('" . $strIP . "') BETWEEN ip_range_start_int AND ip_range_end_int LIMIT 1";
提前致谢
【问题讨论】:
-
您使用的是最新版本的 GeoLite 数据库吗?
-
@MichaelC。是的先生,我在发布这个问题的前一天已经下载了数据库。 :(