gpt4 book ai didi

python - IPv6 地址 Python

转载 作者:太空宇宙 更新时间:2023-11-04 00:19:21 25 4
gpt4 key购买 nike

我的 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中?

最佳答案

您所说的“带有/的 IP 地址”实际上并不是 IP 地址。它们是采用“CIDR 表示法”的 IP 网络(表示 IP 地址范围)。

您可以使用 ipaddress.ip_network() 处理 IP 网络。例如:

>>> ipn = ipaddress.ip_network("2001:200:e000::/35")
>>> ipn.num_addresses
9903520314283042199192993792

关于python - IPv6 地址 Python,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/49817064/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com