常用计算
常用计算
import ipaddress as ip
net = ip.ip_network('192.168.1.130/27', strict=False)
net.network_address # 192.168.1.128
net.broadcast_address # 192.168.1.159
net.hostmask # 0.0.0.31
net.num_addresses # 32
len(list(net.hosts())) # 30拆分与聚合
拆分与聚合
list(ip.ip_network('192.168.1.0/24').subnets(new_prefix=26))
# [192.168.1.0/26, 192.168.1.64/26, 192.168.1.128/26, 192.168.1.192/26]
list(ip.collapse_addresses([ip.ip_network('192.168.0.0/24'),
ip.ip_network('192.168.1.0/24')]))
# [192.168.0.0/23]ip_network() 默认 strict=True:主机地址+掩码会抛 ValueError;工程上先 strict=False 归位,再 assert 结果是否等于预期网段。