你有一个CIDR网络地址比如“123.45.67.89/27”,你想将其转换成它所代表的所有IP (比如,“123.45.67.64”, “123.45.67.65”, …, “123.45.67.95”))
import ipaddress
net = ipaddress.ip_network('123.45.67.64/27')
print(net)
for a in net: print(a)
net6 = ipaddress.ip_network('2:3456:78:90ab:cd:ef01:23:30/125')
print(net6)
for a in net6: print(a)
123.45.67.64/27
123.45.67.64
123.45.67.65
123.45.67.66
123.45.67.67
123.45.67.68
123.45.67.69
123.45.67.70
123.45.67.71
123.45.67.72
123.45.67.73
123.45.67.74
123.45.67.75
123.45.67.76
123.45.67.77
123.45.67.78
123.45.67.79
123.45.67.80
123.45.67.81
123.45.67.82
123.45.67.83
123.45.67.84
123.45.67.85
123.45.67.86
123.45.67.87
123.45.67.88
123.45.67.89
123.45.67.90
123.45.67.91
123.45.67.92
123.45.67.93
123.45.67.94
123.45.67.95
2:3456:78:90ab:cd:ef01:23:30/125
2:3456:78:90ab:cd:ef01:23:30
2:3456:78:90ab:cd:ef01:23:31
2:3456:78:90ab:cd:ef01:23:32
2:3456:78:90ab:cd:ef01:23:33
2:3456:78:90ab:cd:ef01:23:34
2:3456:78:90ab:cd:ef01:23:35
2:3456:78:90ab:cd:ef01:23:36
2:3456:78:90ab:cd:ef01:23:37
要注意的是,ipaddress
模块跟其他一些和网络相关的模块比如 socket
库交集很少。 所以,你不能使用 IPv4Address
的实例来代替一个地址字符串,你首先得显式的使用 str()
转换它。