【发布时间】:2017-11-05 17:22:55
【问题描述】:
我在 iOS App Pythonista 3 上运行 python。 当我尝试获取 IPv6 地址时,它结束了 返回字节而不是格式化的地址。 现在我正在尝试找到一种方法来正确获取地址而不使用字节,或者找到一种方法使字节成为地址。 这是我为获取地址而运行的代码:
def getIPv6Addr(input):
return socket.getaddrinfo(input, None, socket.AF_INET6)
这是输出:
[(30, 2, 17, '', (30, '\x00\x00\x00\x00\x00\x00&\x07\xf8\xb0@\x00\x08\x14')), (30, 1, 6, '', (30, '\x00\x00\x00\x00\x00\x00&\x07\xf8\xb0@\x00\x08\x14'))]
编辑:另一种解决方案是找出正在使用什么类型的编码来将此数据转换为字节。
What Makes:
2607:f8b0:4000:814::200e
become
\x00\x00\x00\x00\x00\x00&\x07\xf8\xb0@\x00\x08\x14
【问题讨论】:
-
可能相关? stackoverflow.com/questions/1238934/getaddrinfo-in-iphone 你得到的 2 元组肯定不像任何指定 IPv6 地址的东西。
-
我在 Linux 上的 python2 或 python3 中没有看到来自 socket.getaddrinfo 的类似结果。这让我很惊讶。
标签: python ipv6 pythonista