我的IPv6地址等于"2001:200:e000::/35“。但是,我不能从库I地址在函数ip_address()中输入它。该函数适用于不包含"/“的地址,例如IPv4 "1.0.0.0”和IPv6 "2001:12f8:0:17::23":
ipaddress.ip_address(unicode("1.0.0.0","utf-8"))返回:
IPv4Address(u'1.0.0.0')和
ipaddress.ip_address(unicode("2001:12f8:0:17::23","utf-8"))返回:
IPv6Address(u'2001:12f8:0:17::23')但是,当我在IPv6 "2001:200:e000::/35“中尝试它时,
ipaddress.ip_address(unicode("2001:200:e000::/35","utf-8"))返回:
Traceback (most recent call last):
File "<stdin>", line 1, in <module>
File "/usr/local/lib/python2.7/dist-packages/ipaddress.py", line 168, in ip_address
address)
ValueError: u'2001:200:e000::/35' does not appear to be an IPv4 or IPv6 address如何将包含"/“的IP地址输入到ip_address?
发布于 2018-04-13 20:33:27
你所说的“带有/在其中的IP地址”实际上并不是IP地址。它们是称为"CIDR表示法“的IP网络(这意味着一系列IP地址)。
您可以使用ipaddress.ip_network()处理IP网络。例如:
>>> ipn = ipaddress.ip_network("2001:200:e000::/35")
>>> ipn.num_addresses
9903520314283042199192993792https://stackoverflow.com/questions/49817064
复制相似问题