Python批量判断IP地址所属地区

首先安装Python扩展库netaddr,然后对下面的代码进行简单修改后即可满足某些场合的应用。

from random import randrange from netaddr import IPRange

def ipRangeTest(ipAddr, ipRange): # 遍历IP地址与地区分布对应关系字典 # 如果ipAddr在某个地区的IP段内 # 返回该地区名称 for key, value in ipRange.items(): if ipAddr in value: return key return 'unknown'

# 可以根据实际情况替换这个字典的内容 # 或从IP地址库中读入信息 ipRange = {'area1':IPRange('10.2.1.0', '10.2.1.255'), 'area2':IPRange('10.2.2.0', '10.2.2.255'), 'area3':IPRange('10.3.0.0', '10.3.255.50'), 'area4':IPRange('11.1.0.0', '11.1.0.255')}

# 测试 for _ in range(10): a = randrange(9,12) b = randrange(1,4) c = randrange(4) d = randrange(256) ipAddr = '.'.join(map(str, (a,b,c,d))) print(ipAddr, ipRangeTest(ipAddr,ipRange))

部分运行结果:

9.2.3.40 unknown 10.1.3.67 unknown 11.1.1.54 unknown 9.1.2.243 unknown 9.3.2.182 unknown 10.3.0.30 area3 9.1.1.58 unknown 11.1.2.205 unknown 10.3.2.179 area3 11.3.1.240 unknown

原文发布于微信公众号 - Python小屋(Python_xiaowu)

原文发表时间:2017-03-25

本文参与腾讯云自媒体分享计划,欢迎正在阅读的你也加入,一起分享。

发表于

我来说两句

0 条评论
登录 后参与评论

相关文章

来自专栏13blog.site

could not resolve host: github.com 问题解决办法

向github提交代码时出现问题,如图: ? 代码push失败,提示could not resolve host: github.com 解决办法: 1、打开终...

4435
来自专栏后端之路

tomcat 使用jmx web页面

tomcat默认不提供jmx了,相对于jboss还是弱了许多呀。 但是我们有新的玩法。 在maven仓库上随便搜搜找到几个jmx console的相关libra...

2057
来自专栏从零开始的linux

用shell添加用户

调试添加用户的脚本 # sh -x useradd.sh alex + '[' 1 -lt 1 ']' + id alex + useradd alex + ...

3326
来自专栏Python中文社区

每天一个Linux命令:chmod

格式 chmod [options] who operator permission file-list (符号模式) chmod [options] mode...

2076
来自专栏电光石火

centos下完全卸载mysql

1、yum remove mysql mysql-server mysql-libs compat-mysql51

3555
来自专栏编码小白

cordova学习三 平台添加

3.1添加命令           平台添加命令在项目的根目录比如myapp则是在../myapp这个目录下,其作用就是安装对应平台环境,这是成功打包的一个前提...

2979
来自专栏漫漫深度学习路

linux 非常用命令总结

如何删除ppa(我们在安装软件的时候,教程一般都会让添加ppa源,但是几乎没有教程会告诉你怎么删除) # 添加ppa源 sudo add-apt-reposit...

1995
来自专栏深度学习之tensorflow实战篇

怎样设置虚拟机和主机文件共享

打开虚拟机,点击编辑虚拟机设置.如图: ? ubuntu默认root密码不可用,需要用普通用户登录后设置: 输入sudo passwd root ...

3596
来自专栏思考的代码世界

MySQL常用命令

特别初级的写了一下。 进入MySQL管理命令行的命令: 1 mysql -u root -p 显示当前数据库: 1 show databases; 显示创建...

4146
来自专栏Python小屋

使用Python把多个图片拼接成为长图

本文主要演示Python扩展库pillow中Image对象的paste()方法用法,并且测试用的所有图片具有相同尺寸,大家可以在此基础上进行改写和扩展。 另外...

4105

扫码关注云+社区