内置的库可提供未修饰的ipv6地址?

时间:2019-03-08 12:25:54

标签: python-3.x ipv6 inet leading-zero

如何在python的ipv6地址字符串中修剪前导零?

例如:我需要将1:1:1:1:1:1:0:1调整为1:1:1:1:1:1 :: 1

我尝试使用socket.inet_ntop和socket.inet_pton,但它们对我而言没有帮助

#!/usr/bin/env python
import socket
import struct
address = '1:1:1:1:1:1:0:1'
addr = socket.inet_ntop(socket.AF_INET6,socket.inet_pton(socket.AF_INET6, address))
print (addr)

这将打印与输出1:1:1:1:1:1:0:1相同的字符串

我还尝试了ipaddress lib,它会产生与上述相同的输出。

#!/usr/bin/env python
import ipaddress
ip = '1:1:1:1:1:1:0:1'
print(str(ipaddress.ip_address(ip)))

我尝试通过参考this问题上获得最高投票的答案来使用netaddr库,但出现导入错误。我正在使用Python 3.0。

我也尝试使用this库,但遇到ImportError:没有名为“ IPy”的模块错误

#!/usr/bin/env python
from IPy import IP
print(IP('1080:0:0:0:8:800:200C:417A'))

我很惊讶地发现,没有人在内置库中拥有真正明确的解决方案来解决这一问题。有人可以帮忙吗?

0 个答案:

没有答案