python3 ipaddress模块 创建 检查 操作ip地址 简介
目录
1.创建地址对象——ipaddress.ip_address()函数
2.定义ip网络——ipaddress.ip_network()函数
3.查看网络中独立地址个数
4.打印主机地址
5.获取网络掩码
6.剔除部分ip段
7.拆分网络段
8.ip接口
9.比较ip地址
ipaddress模块作用——创建、检查和操作IP地址
1.创建地址对象——ipaddress.ip_address()函数
函数作用——根据传入值(整数(十进制/十六进制/八进制/二进制)或字符串)自动创建IPV4/IPV6地址,函数自动判断地址类别
>>>ipaddress.ip_address(1234) #十进制
IPv4Address('0.0.4.210')>>>ipaddress.ip_address(0b101010101) #二进制,低9位
IPv4Address('0.0.1.85')>>>ipaddress.ip_address('192.0.2.1')
IPv4Address('192.0.2.1')>>>print(ip.version) # 打印IP版本号
>>>print(str(ip)) # 转换为字符串
>>>print(int(ip)) # 转换为十进制
>>>print(hex(int(ip))) # 转换为十六进制
>>>print(bin(int(ip))) # 转换为二进制
>>>print(oct(int(ip))) # 转换为八进制
>>>print(ip.packed) # 转换为字节
2.定义ip网络——ipaddress.ip_network()函数
(1)创建网络——使用格式为:ipaddress.ip_network('网络地址/掩码位数'),例如:
>>> a=list(ipaddress.ip_network('192.168.1.0/24'))
>>> print(a[15:25])[IPv4Address('192.168.1.15'), IPv4Address('192.168.1.16'), IPv4Address('192.168.1.17'), IPv4Address('192.168.1.18'), IPv4Address('192.168.1.19'), IPv4Address('192.168.1.20'), IPv4Address('192.168.1.21'), IPv4Address('192.168.1.22'), IPv4Address('192.168.1.23'), IPv4Address('192.168.1.24')]
默认情况下,如果入参中设置了主机位,如‘192.168.1.1/24’,则会弹出错误提示——设置了主机位:
>>> ipaddress.ip_network('192.168.1.1/24')Traceback (most recent call last):File "<pyshell#44>", line 1, in <module>ipaddress.ip_network('192.168.1.1/24')File "C:\Users\Administrator\AppData\Local\Programs\Python\Python37\lib\ipaddress.py", line 74, in ip_networkreturn IPv4Network(address, strict)File "C:\Users\Administrator\AppData\Local\Programs\Python\Python37\lib\ipaddress.py", line 1536, in __init__raise ValueError('%s has host bits set' % self)
ValueError: 192.168.1.1/24 has host bits set
可以通过设置strict=False实现附加位强制为0:
>>> ipaddress.ip_network('192.168.1.1/24',strict=False)
IPv4Network('192.168.1.0/24')
常用查询和操作命令
net=ipaddress.ip_network('192.168.1.0/24')
3.查看网络中独立地址个数
>>>net.num_addresses256
4.打印主机地址
>>> for x in net.hosts():print(x) 192.168.1.1
192.168.1.2
192.168.1.3
192.168.1.4
...
192.168.1.252
192.168.1.253
192.168.1.254
5.获取网络掩码
>>> net.netmask
IPv4Address('255.255.255.0')
6.剔除部分ip段
>>> net2=ipaddress.ip_network('192.168.1.0/26')
>>> list(net.address_exclude(net2))[IPv4Network('192.168.1.128/25'), IPv4Network('192.168.1.64/26')]即:192.168.1.64192.168.1.65---192.168.1.127192.168.1.128---192.168.1.253192.168.1.254
7.拆分网络段
>>> list(net.subnets(new_prefix=25))[IPv4Network('192.168.1.0/25'), IPv4Network('192.168.1.128/25')]
即以25位子网掩码拆分net网络段,划分为两个网络段
8.ip接口
>>>ief = ipaddress.ip_interface('192.168.1.1/23')
>>>print(ief.ip) # 打印ip地址
192.168.1.1>>>print(ief.network) # 打印其所属网段
192.168.0.0/23>>>print(ief.with_netmask) # 以带子网掩码形式打印
192.168.1.1/255.255.254.0>>>print(ief.with_prefixlen) # 已有掩码个数(前缀)形式打印
192.168.1.1/23
9.比较ip地址
>>>print(ipaddress.ip_network('192.168.1.1/32').compare_networks(ipaddress.ip_network('192.168.1.2/32')))
-1
>>>print(ipaddress.ip_network('192.168.1.1/32').compare_networks(ipaddress.ip_network('192.168.1.1/32')))
0
>>>print(ipaddress.ip_network('192.168.1.1/32').compare_networks(ipaddress.ip_network('192.168.1.0/32')))
1
python3 ipaddress模块 创建 检查 操作ip地址 简介相关推荐
- python ipaddress模块_Python学习笔记-IP地址处理模块Ipy
IP地址处理模块Ipy IPy模块可以很好的辅助我们高效完成IP的规划工作. 安装IPy模块[root@kurol ~]# python36 -m easy_install -i http://pyp ...
- python3 selenium模块Chrome设置代理ip的实现
python3 selenium模块Chrome设置代理ip的实现 selenium模块Chrome设置代理ip的实现代码: from selenium import webdriver chrome ...
- 计算机运行命令查看电脑ip,如何用命令提示符检查网络IP地址是否运行?
命令提示符是一项可以使用键盘输入命令来进行计算机控制,可以进行简单的人机交互 技术.在一些比较专业的电脑技巧中,往往需要用到命令提示符.今天我们介绍的是如何用命令提示符检查网络IP地址是否运行. 方法 ...
- 计算机网络基本知识(八):域名、IP地址简介及分类
一.域名 1.域名的格式: • 计算机主机名.本地名.组名.最高层域名 例:www.hust.edu.cn 2.URL的格式: • 协议://主机.域名[:端口号]/路径/文件名 例:http://2 ...
- springcloud2.0以上版本_eureka控制台显示_找不到${spring.cloud.client.ipAddress}_没有显示成IP地址---springcloud工作笔记165
eureka.client.serviceUrl.defaultZone=http://localhost:8000/eureka/eureka.instance.prefer-ip-address= ...
- linux ip地址本地缓存,ip-address – 如何解析组织的IP地址(使用缓存)
我想我找到了解决这个问题的更好方法.我错误地认为反向DNS是无用的:反向DNS比我知道的更多!例如,给定IP地址8.12.3.96,96.3.12.8.in-addr.arpa没有PTR记录: hos ...
- php qqwry.dat_php读取操作IP地址数据库文件QQWry.dat
我们统计流量的时候需要可以获取用户ip,根据用户ip之后可以通过纯ip真数据库QQWry.dat,获取出用户IP 所在的地理位置,这样可以做出更有意义的统计信息. QQWry.dat请自行搜索下载. ...
- ip地址简介 ip地址取值0-255 最后一位也可以为0
IPv4由32位二进制组成,平均分为4段,每段8位,中间用点隔开,用十进制表示,称为点分十进制.(每段的范围都是0-255) 一.IP地址和MAC地址 1.MAC地址 MAC(Media Access ...
- Python使用正则表达式检查合法IP地址
全国高校教师Python课程高级研修班(线上,11月20-21日) 中国大学MOOC"Python程序设计基础"第5次开课 推荐图书: <Python可以这样学>,IS ...
最新文章
- Clipping input data to the valid range for imshow with RGB data ([0..1] for floats or [0..255] for i
- Vim 用户的大脑变化
- go函数详解:函数定义、形参、返回值定义规范、函数内存分析、不支持重载、支持可变参数、基本数据类型和数组默认都是值传递的、支持自定义数据类型、函数返回值命名
- .NET各版本一览表
- 此应用无法在你的电脑上运行_能直运行iOS应用!苹果新macOS翻车 正式版下载后无法安装...
- 斯坦福大学机器学习——高斯判别分析
- BioSPPy - Biosignal(生物信号处理库)
- 被阿里带火的数据中台,不靠这三个阶段绝对失败
- Javascript -- 精通String
- Sublime Text编写80×86汇编.asm文件的语法高亮插件
- 基于ASP.NETAJAX的WebPart开发与部署-转
- js无限分级 树_js实现无限级树形导航列表效果代码
- win32SDK的hello,world程序(二)
- 求链表是否有环,及环入口,环长度
- Maven学习—Nexus3私服搭建
- qt初体验(通信原理:消息码--AMI码--HDB3码低配可视化)
- 自动控制原理--卢京潮 2009(免费)课本完整
- Linux串口ttyUSB设置
- 支部谈心谈话工作怎么开展?_工作场所“激情”的谈话引发了读书俱乐部期间的热烈聊天
- 全栈工程师是什么,为什么需要全栈工程师?
热门文章
- mybatis 乐观锁_MybatisPlus新特性之逻辑删除、乐观锁、自动填充
- Tungsten Fabric SDN — DCI
- 互联网协议 — BGP 边界网关协议 — Route(路由信息)
- Kubernetes — kubectl 的基本使用
- Powershell 命令行泄漏下一个 Windows 10 更新内容
- Android 程序自动更新功能模块实现
- log4j在javaWeb项目中的使用
- 公众平台服务号、订阅号、企业号的相关说明
- [Silverlight入门系列]实现局部元素全屏(Element部分全屏)
- Centos升级php mysql