美文网首页
python ipaddress模块ip地址处理

python ipaddress模块ip地址处理

作者: 孙广宁 | 来源:发表于2022-06-06 23:10 被阅读0次
11.4 假如我们有一个网段 192.168.1.89/27,我们想得到全部的ip地址范围
  • 利用ipaddress 模块可以处理
>>> import ipaddress
>>> net = ipaddress.ip_network('192.168.2.64/27')
>>> net
IPv4Network('192.168.2.64/27')
>>> for a in net:
...     print(a)
...
192.168.2.64
192.168.2.65
192.168.2.66
192.168.2.67
192.168.2.68
192.168.2.69
.............
192.168.2.90
192.168.2.91
192.168.2.92
192.168.2.93
192.168.2.94
192.168.2.95
  • network对象同样也支持像数组那样的索引操作
>>> net.num_addresses
32
>>> net[0]
IPv4Address('192.168.2.64')
>>> net[1]
IPv4Address('192.168.2.65')
>>> net[-1]
IPv4Address('192.168.2.95')
>>>
  • 可以检查ip地址是否属于某个CIDR网段
>>> a = ipaddress.ip_address('192.168.2.90')
>>> a in net
True
>>> b = ipaddress.ip_address('192.168.2.100')
>>> b in net
False
>>>
  • IP地址加上网络号可以用来指定一个ip接口
>>> inet = ipaddress.ip_interface('192.168.2.70/27')
>>> inet.network
IPv4Network('192.168.2.64/27')
>>> inet.ip
IPv4Address('192.168.2.70')
>>>
  • ipaddress 模块中有一些类可以用来表示ip地址、网络对象以及接口,详细信息可以查看ipaddress python官网

相关文章

网友评论

      本文标题:python ipaddress模块ip地址处理

      本文链接:https://www.haomeiwen.com/subject/uujsmrtx.html