PHP脚本和GEO-Lite数据库
我需要从用户ip获取国家名称。据我所知,可以通过两种方式实现:PHP脚本和GEO-Lite数据库,php,mysql,ip,Php,Mysql,Ip,我需要从用户ip获取国家名称。据我所知,可以通过两种方式实现: 调用第三方api(但这可能很慢) 使用自己的数据库 因此,我从以下站点下载IP数据库: 在我的数据库中创建一个表,然后使用php脚本获取ip和国家 但这并不适用于我自己的国家:( 但在我检查vps时工作 目前我的ip是:180.211.255.204 所以,我想可能是数据库没有更新 但当我在网站演示测试中尝试相同的ip时,效果很好: 那么问题出在哪里?是数据库不同还是我的代码有问题 我很困惑:( 以下是我用来获取国家/地区信息的
$strSQL="SELECT `country_name` FROM `IPCountry` WHERE INET_ATON('" . $strIP . "') BETWEEN ip_range_start_int AND ip_range_end_int LIMIT 1";
提前感谢如果其他IP返回正确的结果,您的查询/代码可能没有问题 以下是一些需要考虑/尝试的事项: 1.Maxmind本身(在那里演示)可能不使用自己数据库的lite版本,因此您在那里得到的结果可能更准确
顺便说一句,我自己使用geolite2数据库,它返回“Bangladesh”作为您提供的IP的国家/地区。(请参阅:)先生,您是否像我一样在服务器上使用了相同的数据库?如果是,您能分享您使用的代码吗,我想您使用的数据库与我不同,或者使用的代码与我相同?我们将非常感谢您的帮助:)源代码可在此处获得:我使用的是GeoLite 2城市数据库,可在此处获得:您使用的是GeoLite数据库的最新版本吗?@MichaelC。是的,先生,我在发布此问题的前一天下载了数据库:(