1

我想用它netaddr来找出给定地址的子网(网络 ID)的起始地址。

示例输入:192.168.1.130/26

示例输出:192.168.1.0 192.168.1.64 192.168.1.128 192.168.1.192

到目前为止,我已经尝试使用此代码:

from netaddr import *

ip = IPNetwork('192.168.1.130/26')
subnets = list(ip.subnet(26))
print(subnets)
[IPNetwork('192.168.1.128/26')]

它显示正确的网络 ID,但仅针对该特定地址,而不是所有子网的网络 ID。

在这种情况下,我能否以某种方式更改此代码以显示所有四个网络 ID(它应该能够使用任何 IP/掩码)

先感谢您。

4

1 回答 1

1
>>> from netaddr import *
>>>
>>> ip = IPNetwork('192.168.1.130/26')
>>> supernet = ip.supernet(24)[0]
>>> print list(supernet.subnet(26))
[IPNetwork('192.168.1.0/26'), IPNetwork('192.168.1.64/26'), IPNetwork('192.168.1.128/26'), IPNetwork('192.168.1.192/26')]
于 2013-06-30T10:03:19.050 回答