我正在尝试通过 Python3 列出给定网络范围的有效主机, ipaddress
模块,但在尝试列出所有有效主机时出现 ValueError ValueError('%s has host bits set' % self)
。
>>> ip_range=input("Enter IP Range:")
Enter IP Range:192.168.56.101/16
>>> list(ipa.ip_network(ip_range).hosts())
Traceback (most recent call last):
File "<stdin>", line 1, in <module>
File "/usr/local/lib/python3.5/ipaddress.py", line 74, in ip_network
return IPv4Network(address, strict)
File "/usr/local/lib/python3.5/ipaddress.py", line 1536, in __init__
raise ValueError('%s has host bits set' % self)
ValueError: 192.168.56.101/16 has host bits set
原文由 Raja G 发布,翻译遵循 CC BY-SA 4.0 许可协议
如 文档 中所述:
斜杠后的数字(在您的情况下为 16)表示为 subnet 保留的位数,因此最后 16 位是您的主机位。此方法要求这些位为 0(未设置)。