python脚本运用geoip2进行Ip地址解析

主要内容是配置geoip2环境时的错误和对Geoip2的一个简单应用
  • 错误1:pip的安装对应的python不是想使用的版本
  • 错误2:安装时不指定版本,版本最新
  • 错误3:网络不稳定

配置

  • python 2.7
  • pip 20.3.4
  • Liunx环境

配置Geoip2环境

学习python,或许都知道pip这个python包管理工具,本文都是以pip为例,当然还有其他的方式安装,这里就不拓展

确认环境

确认python和pip

首先在配置之前先查看自己的python版本和pip的版本及路径

//在命令行输入
python -V//python版本
pip -V//版本

pip -V
python -V
这里可以看到使用的python为2.7.16,pip 20.3.4是使用python2.7安装
venv/lib/python2.7/site-packages
安装好的包都在venv/lib/python2.7/site-packages路径下
错误1:pip的安装对应的python不是想使用的python版本
这里经常出现一个错误,pip是使用其他版本的python安装的,并非是想使用的版本
例如:使用的python是2.7 ,但是pip是采用python2.6安装的。导致安装的包无法找到,原因就是在pip安装的包是在对应的pythonX.x的包名下,这里安装的geoip2装在2.6,python2.7脚本的包路径下找不到geoip2包

确认已安装的包

然后就是机器已下载的pyhton包以及版本

pip list 

pip list
配置geoip2,须安装这三个包,当然具体的版本还是要根据需求选择
错误2:安装时不指定版本,版本最新

安装的时候可不要忘记版本号,这很危险!!!

语法: pip install packagesname == X.X.xx

错误3:网络不稳定
有时网络安装不稳定,显示的错误是匹配不到对应版本的包,实际上是网络的问题,换一个镜像就可以,如果下面也是出现这个问题,可以考虑再换一个阿里或清华的镜像源
在这里插入图片描述

//本地调试
pip install Django==1.11.29
pip install geoip2==3.0.0 -i http://pypi.douban.com/simple/ --trusted-host pypi.douban.com
pip install maxminddb==1.5.4 -i http://pypi.douban.com/simple/ --trusted-host pypi.douban.com

在本地调试的时候没有什么大问题,在自己私人云服务器上也没有问题,结果上到工作的服务器就报错了
服务器报错
显示解析异常,初步估计是maxminddb 版本在某一代进行了重构性更新导致语法解析错误,更换成低版本就行,但是geoip2有最低版本依赖,所以也要降级

//服务器调试(可能需要低版本的才行,具体原因,还在探寻中)
pip install geoip2==2.9.0 -i http://pypi.douban.com/simple/ --trusted-host pypi.douban.com
pip install maxminddb==1.4.1 -i http://pypi.douban.com/simple/ --trusted-host pypi.douban.com

Geoip2简单应用

一、Geoip2研发的Reader(推荐使用)

Geoip2研发的Reader
Geoip2官方文档链接

二、通用的读取方式

(支持各类mmdb格式,不仅是Geoip2)
通用的读取方式

测试用例

223.19.49.173 中国 香港 XX
218.250.209.178 中国 香港 XX
182.93.6.197 中国 澳门 XX
202.175.41.98 中国 澳门 XX
35.194.250.118 中国 台湾 彰化县
115.82.186.13 中国 台湾 台北
121.35.187.167 中国 广东 深圳
112.97.192.86 中国 广东 深圳

小结

作为一个菜鸟,在python方面还不是特别了解,在使用geoip2的就不班门弄斧了,这里主要是为配置geoip2感到苦恼的人提供解决错误的经验,不可能解决所有人的问题
如果有问题也可以在下方留言讨论

陈棋烂柯,一甲子矣

转载须获得本人许可
印象笔记的链接:python脚本运用geoip2进行Ip地址解析

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值