python: ipaddress 包输出与 CIDR 网站不一致

python: ipaddress package output not consistent with CIDR website

我正在使用 python ipaddress 包转换一些 CIDR,例如:

import ipaddress
net4 = ipaddress.ip_network(u'10.120.160.0/19')
for x in net4.hosts():
    print(x)

上面代码的 first_ip 输出是 10.120.160.1 ,而上面代码的 last_ip 是 10.120.191.254

但是,如果我使用网站:http://www.ipaddressguide.com/cidr 进行转换:first_ip 变为 10.120.160.0 而 last_ip 变为 10.120.191.255

有谁知道为什么结果不同,哪个是正确的?谢谢!

最后一个地址是子网的广播地址,所以不能给主机,第一个是网络地址本身,也没有分配给主机。所以这两个来源都是正确的,他们只是告诉你不同的事情:python例程给你适合主机的IP,而网页给你范围内的所有IP,包括网络和广播。