文档章节

Python获取IP地址对应的地理位置信息!

糖宝lsh
 糖宝lsh
发布于 01/27 18:36
字数 515
阅读 160
收藏 2

开发工具

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效果如下:

在学习中有迷茫不知如何学习的朋友小编推荐一个学Python的学习q u n 227  -435-  450可以来了解一起进步一起学习!免费分享视频资料

原理简介

利用了三个可以查询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为例):

© 著作权归作者所有

糖宝lsh
粉丝 54
博文 183
码字总数 290695
作品 0
临沂
私信 提问
python项目实战:获取本机所有IP地址的方法

前言 今天为大家介绍一个利用python获取本机所有IP地址的具体代码,具有一定的参考价值,希望能够帮助到大家,代码如下: 导入第三方库 查看主机名 主机IP 学习从来不是一个人的事情,要有个相互...

Python学习1
05/08
97
0
Python学习你掌握对方法了吗?python自动化

阅读官方文档即可满足日常需求,官方文档有中文翻译,更加方便学习。但这些都是基础的语法和常见的模块,Python学习重要的是模块,快速、高效的开发依赖的是模块的应用,站在前人的肩膀会省时...

老男孩Linux培训
2018/06/12
15
0
人生苦短之HTTP协议及Requests库的方法

requests库的主要方法:requests.request()构造一个请求    requests.get()获取HTML网页的主要方法,对应于HTTP的GET    requests.head()获取HTML网页头的方法,对应于HTTP的HEAD   ...

p柯西
2018/06/14
14
0
这可能是最好玩的python GUI入门实例!

简单的说,GUI编程就是给程序加上图形化界面. python的脚本开发简单,有时候只需几行代码就能实现丰富的功能,而且python本身是跨平台的,所以深受程序员的喜爱. 如果给程序加一个图形化界面,那么...

zhaoolee
2017/09/16
0
0
Python网络安全基础:一、使用Python编写端口扫描器

最近有同学问我,说想用Python写渗透辅助工具,但是却不知道该如何下手,该怎么办。我告诉他,细化渗透测试的过程,把其中的一些使用其他工具完成的步骤,尝试着使用Python来代替就可以了。 ...

州的先生
2018/05/20
0
0

没有更多内容

加载失败,请刷新页面

加载更多

怎样在磁盘上查找MySQL表的大小?这里有答案

导读 我想知道 MySQL 表在磁盘上占用多少空间,但看起来很琐碎。不应该在 INFORMATION_SCHEMA.TABLES 中提供这些信息吗?没那么简单! 我想知道 MySQL 表在磁盘上占用多少空间,但看起来很琐碎...

问题终结者
21分钟前
5
0
jQuery load() 方法实现加载远程数据

jQuery load() 方法是简单但强大的 AJAX 方法。load() 方法从服务器加载数据,并把返回的数据放入被选元素中。 语法: $(selector).load(URL,data,callback);必需的 URL 参数规定您希望加载的...

前端老手
22分钟前
3
0
Spring Boot缓存实战 Redis 设置有效时间和自动刷新缓存-2

问题 上一篇Spring Boot Cache + redis 设置有效时间和自动刷新缓存,时间支持在配置文件中配置,说了一种时间方式,直接扩展注解的Value值,如: @Override@Cacheable(value = "people#${s...

xiaolyuh
31分钟前
9
0
怎样在磁盘上查找MySQL表的大小?这里有答案

我想知道 MySQL 表在磁盘上占用多少空间,但看起来很琐碎。不应该在 INFORMATION_SCHEMA.TABLES 中提供这些信息吗?没那么简单! 我想知道 MySQL 表在磁盘上占用多少空间,但看起来很琐碎。不应...

Linux就该这么学
55分钟前
5
0
Redis

一、Redis支持的几种数据类型:字符串、List、SET、HASH、ZSET 二、Redis的缓存技术主要是为了降低关系数据库的负载并减少网站成本 三、在Redis里面,被MULTI命令和EXEC命令包围的所有命令会...

BobwithB
57分钟前
4
0

没有更多内容

加载失败,请刷新页面

加载更多

返回顶部
顶部