你有一个CIDR网络地址比如“123.45.67.89/27”,你想将其转换成它所代表的所有IP (比如,“123.45.67.64”, “123.45.67.65”, …, “123.45.67.95”))
import ipaddressnet = 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/27123.45.67.64123.45.67.65123.45.67.66123.45.67.67123.45.67.68123.45.67.69123.45.67.70123.45.67.71123.45.67.72123.45.67.73123.45.67.74123.45.67.75123.45.67.76123.45.67.77123.45.67.78123.45.67.79123.45.67.80123.45.67.81123.45.67.82123.45.67.83123.45.67.84123.45.67.85123.45.67.86123.45.67.87123.45.67.88123.45.67.89123.45.67.90123.45.67.91123.45.67.92123.45.67.93123.45.67.94123.45.67.952:3456:78:90ab:cd:ef01:23:30/1252:3456:78:90ab:cd:ef01:23:302:3456:78:90ab:cd:ef01:23:312:3456:78:90ab:cd:ef01:23:322:3456:78:90ab:cd:ef01:23:332:3456:78:90ab:cd:ef01:23:342:3456:78:90ab:cd:ef01:23:352:3456:78:90ab:cd:ef01:23:362:3456:78:90ab:cd:ef01:23:37
要注意的是,ipaddress 模块跟其他一些和网络相关的模块比如 socket 库交集很少。 所以,你不能使用 IPv4Address 的实例来代替一个地址字符串,你首先得显式的使用 str() 转换它。
