我使用Maxmind来检测IP地址,并在php中显示国家代码,国家名称和城市名称。通过geoip. dat、geoip显示以上信息没有问题。公司,geoipcity。公司等
我已经插入GeoIPCountryWhois.csv到我的sql数据库,
$mysqli->query('DROP TABLE ip2country'); $sql=" CREATE TABLE ip2country (ip_string_lo VARCHAR(16) NOT NULL, ip_string_hi VARCHAR(16) NOT NULL, ip_number_lo INT UNSIGNED NOT NULL, ip_number_hi INT UNSIGNED NOT NULL, country_code VARCHAR(2) NOT NULL, country_name VARCHAR(64) NOT NULL)";
你能告诉我如何使用我的数据库显示IP信息吗?由于
Maxmind数据库为平衡二叉树。它非常快。然而,把它放在MySQL中有时会使它更快。您需要从Maxmind获得CSV版本,最简单的方法是创建与CSV相同的结构。
然后你需要将IP地址转换为数字- PHP和MySQL都有这个功能。
最后执行简单的SQL并获取行。Maxmind CSV具有IP地址块,并将您的第一个和最后一个IP地址作为int。你的IP必须是"内部的"。
我个人建议将GeoIP放在Redis中,因为这样它会更快。
<标题> 更新
这是我几年前做的:
https://github.com/nmmmnu/GeoIP-Redis我不是100%确定,如果导入仍然工作,但通过一些调整,它将能够导入数据。
目前,我正在使用nginx模块,自动完成所有这些,并在HTTP请求中给我一个头。
因为这是完全不同的方法,你可以查看解决方案或打开新的问题并联系我,我可以在那里回答。
标题>