我需要将本地 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