MaxMind GeoIP CSV 到 .dat

MaxMind GeoIP CSV 到 .dat

我需要将本地 IP 地址放入 MaxMind GeoIP DB。我已经下载了 CSV,添加新 IP 地址和位置很容易。我找到了两个用于 MaxMind GeoIP 的 csv 到 dat 的工具,但我无法让它们工作。

使用python脚本:

./csv2dat.py -w custom_geoip.dat mmcountry working.csv 
File "./csv2dat.py", line 69
print "error: database types don't match"
SyntaxError: Missing parentheses in call to 'print'

另外,我尝试编译 cpp 脚本(https://github.com/dankamongmen/sprezzos-world/blob/master/packaging/geoip/debian/src/geoip-csv-to-dat.cpp),但是我得到了很大的 strace。

我已经尝试过新旧版 MaxMind DB。还有其他工具吗?

谢谢

答案1

geoip-csv-to-dat.cpp- 是geoip-bin包,如果它是您的 Linux 发行版,则可以从 Debian 或 Ubuntu 存储库安装。

apt-get install geoip-bin
/usr/lib/geoip/geoip-generator --help

更新:深入研究源代码发现,maxmind 国家和城市 csv 数据库具有完全不同的格式,因此您必须提供不同的参数来处理它。

对于国家数据库:

/usr/lib/geoip/geoip-generator -v -o custom_geoip.dat working.csv 

对于城市数据库:

/usr/lib/geoip/geoip-generator -v -o custom_geoip.dat -t \
GEOIP_CITY_EDITION_REV1 -l working-locations.csv working-blocks.csv 

至于csv2dat.py- 看起来您正在尝试Python 2使用解释器执行脚本Python 3。尝试:

python2.7 csv2dat.py -w custom_geoip.dat mmcountry working.csv 

相关内容