【问题标题】:IPv6 address representation in PythonPython 中的 IPv6 地址表示
【发布时间】:2015-06-14 08:19:56
【问题描述】:

我正在将 IPv6 地址转换为文本表示,并注意到我无法解释的行为:

In[38]: socket.inet_ntop(socket.AF_INET6, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xff\xff\x7f\x00\x00\x01')
Out[38]: '::ffff:127.0.0.1'
In[39]: socket.inet_ntop(socket.AF_INET6, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\xff\xff\xff\x7f\x00\x00\x00')
Out[39]: '::ff:ffff:7f00:0'

看到::ffff:127.0.0.1 我很惊讶,我希望它是::ffff:7f00:0。它是标准的还是至少是常见的?哪些 IPv6 地址以这种方式表示? Wikipedia article 根本没有提到它。我很困惑。

【问题讨论】:

    标签: python ipv6


    【解决方案1】:

    POSIX page for inet_ntop 将该格式指定为选项之一(稍作解释):

    在处理 IPv4 和 IPv6 节点的混合环境时,有时更方便的第三种形式是x:x:x:x:x:x:d.d.d.d,其中x 字符是地址的六个高位 16 位片段的十六进制值, d 字符是地址的四个低位 8 位片段的十进制值(标准 IPv4 表示)。

    【讨论】:

      猜你喜欢
      • 2018-09-23
      • 2011-06-24
      • 2011-10-20
      • 2017-11-05
      • 2013-05-13
      • 2012-12-13
      • 1970-01-01
      • 2013-04-23
      • 2010-09-15
      相关资源
      最近更新 更多