Python获取IP地址对应的地理位置信息!
2019-01-21 本文已影响34人
1a076099f916
导语
最近比较喜欢做一些小工具分享给大家T_T今天我们就做一个利用Python来获取IP地址对应的地理位置信息的小工具吧。让我们愉快地开始吧~进群:700341555获取Python学习资料哦!
开发工具
Python版本:3.6.4相关模块:IPy模块;argparse模块;requests模块;以及一些Python自带的模块。
环境搭建
安装Python并添加到环境变量,pip安装需要的相关模块即可。
先睹为快
py文件运行方式(cmd窗口):python ipLocQuery.py -ip ipaddrpython ipLocQuery.py -f ipaddrfileexe文件运行方式(cmd窗口):ipLocQuery.exe -ip ipaddripLocQuery.exe -f ipaddrfile效果如下:
原理简介
利用了三个可以查询ip地址对应归属地的网站做的这个小工具,分别是:
① ip.taobao.com
速度快,查国内的ip地址对应归属地比较精确。
② ip-api.com
速度很慢,准确性一般,国内外ip地址对应归属地均可查询,同时提供了经纬度信息。
③ api.ipstack.com(推荐)
速度快,准确性高,国内外ip地址对应归属地均可查询,同时提供了经纬度信息。
代码实现起来比较简单,主要流程为:
(1)IP地址有效性验证
图方便,就直接调用IPy模块来验证的,有bug。具体代码如下:
(2)请求API接口获取ip地址对应归属地
根据ip地址分别请求每个网站提供的API接口来获取ip地址对应归属地。由于返回结果是英文或者拼音,因此需要调用有道翻译的API接口对返回结果进行翻译,最后再把翻译结果打印出来。
具体代码实现如下(以ipstack为例):