【发布时间】:2026-02-05 01:50:02
【问题描述】:
我的 IPv6 地址等于“2001:200:e000::/35”。 但是,我无法在库 ipaddress 的函数 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?
【问题讨论】:
-
我猜你已经知道你尝试的地址不适合作为 IPv6 地址,你还想放吗?
-
斜线表示它不是单个地址,因为 ip6 /32 实际上代表了 65536 个地址的范围。所以它本身不是一个地址。
标签: python ip-address ipv6 ipv4