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



我的应用程序需要通过网络发送和读取IPv6地址。它只会由我的应用程序读取,但我仍然想遵循惯例。是否有用于执行此操作的库函数?

socket 模块有一个函数,称为inet_pton。但是,它并非在所有平台上都可用。(它在我正在编写本文的Windows机器上不可用。

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

from ipaddr import ipaddr
raw = 'x00x00x00x00x00x00x00x00x00x00x00x00x00x00x00x00'
ip = ipaddr.IPv6Address(ipaddr.Bytes(raw))
print "IP is: " + str(ip)
original = bytes(ip.packed)
print "Original raw bytes: " + repr(original)

最新更新