首页 > 解决方案 > 创建后geoip .dat 出错

问题描述

免责声明

是的,我知道 .dat (geoip v1) legacy 是EOL,但我真的需要它!

我需要从.csv文件创建二进制.dat (GeoLiteCity.dat)文件。为此,我使用mmutils ( ) 和我自己的平面 csv 文件。完成后,我使用例如 ip 191.243.53.129(BR,Abelardo Luz,Santa Catarina)进行检查。首先,我在 csv 和调试日志文件中看到它: 都正确!但是当我用python(pygeoip,GeoIP模块)询问我的GeoLiteCity.dat文件“告诉我,谁是191.243.53.129”时,或者我得到了:csv2dat.py -w GeoLiteCity.dat mmcity GeoLiteCity-flat-sorted.csv 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 geoiplookupUS, Pennsylvania, N/A, Philadelphia, 19123, 39.964298, -75.144402, 504, 500

UPD

当我尝试使用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 这是此过程的堆栈跟踪。但是,如果我尝试使用geoip-generator一些文件(例如 10-15 个字符串)进行转换 - 一切正常。在这种情况下,我得到了 custom_geoip.dat 没有任何错误。

所以,也许有人可以解释一下,为什么会这样?为什么 .dat 文件中的信息有误?以及如何修复它?

标签: pythoncsvbinarygeoipmaxmind

解决方案


推荐阅读