如何从原始字节获取IPv6地址?

时间:2012-11-22 07:29:45

标签: python ipv6

我的应用程序需要通过网络发送和读取IPv6地址。它只会由我的应用程序读取,但我仍然喜欢遵循惯例。这样做是否有库函数?

1 个答案:

答案 0 :(得分:1)

socket模块具有此功能,称为inet_pton。但是,它并非在所有平台上都可用。 (我在Windows机器上找不到它。)

我建议您使用名为ipaddr的非标准库。它有两个非常明显的功能,可以完全满足您的需求:

from ipaddr import ipaddr
raw = '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00'
ip = ipaddr.IPv6Address(ipaddr.Bytes(raw))

print "IP is: " + str(ip)

original = bytes(ip.packed)

print "Original raw bytes: " + repr(original)