是的,我知道.dat(geoip v1)的旧版是 EOL ,但我真的很需要它!
我需要从 .csv 文件创建二进制 .dat (GeoLiteCity.dat)文件。为此,我使用mmutils(csv2dat.py -w GeoLiteCity.dat mmcity GeoLiteCity-flat-sorted.csv
)和自己的flat csv file。完成后,我会使用ip 191.243.53.129(BR,Abelardo Luz,
圣卡塔琳娜州)。首先,我在csv和debug-log文件中看到它:
2148767 ["14702888 (('BR', 'Parana', 'Ampere', '', '-25.9167', '-53.4667', '', '20'), IPv4Network('191.243.48.0/22'))", "17135708 (('BR', 'Santa Catarina', 'Abelardo Luz', '89830', '-26.5983', '-52.2232', '', '50'), IPv4Network('191.243.52.0/22'))"]
191.243.52.0/22,3220386816,3220387839,BR,"Santa Catarina","Abelardo Luz",89830,-26.5983,-52.2232,,50
全对了!但是当我用python(pygeoip,GeoIP模块)或geoiplookup
询问我的GeoLiteCity.dat文件“告诉我,谁是191.243.53.129”时,我得到了:US, Pennsylvania, N/A, Philadelphia, 19123, 39.964298, -75.144402, 504, 500
当我尝试使用 geoip-generator 时,我得到了Operation not permitted
:
$ geoip-generator -v -o custom_geoip.dat -t GEOIP_CITY_EDITION_REV1 -l GeoLiteCity-Location-sorted.csv GeoLiteCity-Blocks-sorted.csv
geoip-generator: Reading block CSV and building the trie
geoip-generator: Done reading blocks, trie size is 3078613
geoip-generator: Reading location CSV
geoip-generator: custom_geoip.dat: Operation not permitted
这是此过程的stack trace。但是,如果我尝试使用geoip-generator
转换一些文件(例如,使用10-15个字符串),则一切正常。在这种情况下,我得到了custom_geoip.dat,没有任何错误。
那么,也许有人可以解释我,为什么要做?为什么.dat文件中的信息错误?以及如何解决?