使用Python如何扩展IPv6地址?

8

我希望将IPv6地址的速记符号转换为IPv6寻址格式的长手写符号;我知道我们可以使用ipaddress库执行各种IP地址操作。例如,我想将::abc:7:def转换为0000:0000:0000:0000:0000:0abc:0007:0def

1个回答

19

你正在寻找 IPv6Address 对象的 exploded 属性。你可以通过调用 ipaddress.ip_address 来获得它:

> import ipaddress
> addr = ipaddress.ip_address('::abc:7:def')
> print(addr.exploded)
0000:0000:0000:0000:0000:0abc:0007:0def

1
请务必将IPv6地址输入为Unicode,否则在Python 2上可能会遇到错误。 - user3167654
这也适用于“IPv4映射IPv6地址”:import ipaddress; print(ipaddress.ip_address('::ffff:192.0.2.128').exploded) -> 0000:0000:0000:0000:0000:ffff:c000:0280。这很好。 :) - qräbnö

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接