python - 创建后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
geoiplookup
US, 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 文件中的信息有误?以及如何修复它?
解决方案
推荐阅读
- django - 从 axios 到 Django Rest Server 的 POST 信号错误处理
- php - PHP:PSR-15 Outbound Middlewares,通过中间件修改响应?
- deeplearning4j - DL4J:输入大小错误 - 预期矩阵
- python - Twitter 的 Tweet_ID 在 Twitter 平台上是唯一的吗?
- android - 如何在 android studio 中对齐语句?
- google-search-console - Google Search Console 站点地图错误 URL 无效
- webrtc - 如何使用 Kurento 媒体服务器实现屏幕共享选项 WebRTC
- visual-studio-code - 如何在 vscode webview 中使用 window.crypto.subtle
- python-3.x - 如何在 linebot 中制作轮播 Flex 消息
- python - 通过 FFT 计算数值导数 - SciPy