【发布时间】:2022-01-03 00:09:17
【问题描述】:
我有一个子网172.16.0.0/22,其中有四个范围172.16.0.0 → 172.16.0.255 、172.16.1.0 → 172.16.1.255、172.16.2.0 → 172.16.2.255 和172.16.3.0 → 172.16.3.255。我正在使用netaddr 来查找这些范围。
import netaddr
network = netaddr.IPNetwork(addr="172.16.0.0/22")
print(list(network))
# output
[
IPAddress("172.16.0.0"),
IPAddress("172.16.0.1"),
...,
IPAddress("172.16.0.254"),
IPAddress("172.16.0.255"),
...,
IPAddress("172.16.1.0"),
IPAddress("172.16.1.1"),
...,
IPAddress("172.16.1.254"),
IPAddress("172.16.1.255"),
...,
IPAddress("172.16.2.0"),
IPAddress("172.16.2.1"),
...,
IPAddress("172.16.2.254"),
IPAddress("172.16.2.255"),
...,
IPAddress("172.16.3.0"),
IPAddress("172.16.3.1"),
...,
IPAddress("172.16.3.254"),
IPAddress("172.16.3.255"),
]
如何选择每个范围的每个 .1 和.254?即,我怎样才能得到这样的输出
[
(172.16.0.1, 172.16.0.254),
(172.16.1.1, 172.16.1.254),
(172.16.2.1, 172.16.2.254),
(172.16.3.1, 172.16.3.254)
]
【问题讨论】:
标签: python python-3.x subnet