我在质疑 Python 的 ipcalc 模块(ipcalc)的结果(似乎 netaddr 可能是更好的选择)。
让我们192.168.1.25/30
举个例子。在二进制中,最后一个八位位组是00011001 AND 11111100 = 00011000
,所以我得到192.168.1.24
Network ID 和 range 192.168.1.24 - 192.168.1.27
。
使用 ipcalc,当我指定
subnet = ipcalc.Network('192.168.1.25/30')
for x in subnet: print x
输出是
192.168.1.25
192.168.1.26
192.168.1.27
192.168.1.28
我不理解这种不一致。使用 CIDR 表示法时,似乎同时指定192.168.1.24/30
and 192.168.1.25/30
(or .26/30
or .27/30
) 指的是同一个子网。
那是对的吗?这只是 ipcalc 模块中的一个错误吗?