【问题标题】:How to generate unique loopback IPv6 address in Python?如何在 Python 中生成唯一的环回 IPv6 地址?
【发布时间】:2016-09-23 22:05:09
【问题描述】:

我需要能够生成一个唯一的 IPv6 环回地址,我可以使用该地址在主机内部而非主机外部的进程之间进行通信。

对于 IPv4 我发现:

>>> import random, ipaddress
>>> ipaddress.IPv4Address('127.0.0.1') + random.randrange(2**24 - 2)
IPv4Address('127.23.181.175')

有 IPv6 的类似物吗?

【问题讨论】:

  • IPv6 有一个环回地址 (::1),而 IPv4 的范围 (127.0.0.0/8) 有 16+ 百万个地址。
  • 这是什么原因?现在这看起来像XY problem

标签: python ipv6


【解决方案1】:

IPv6 只有一个环回地址:::1。这在RFC 4291, IP Version 6 Addressing Architecture, Section 2.5.3 The Loopback Address中有详细说明:

2.5.3。环回地址

单播地址0:0:0:0:0:0:0:1称为环回地址。 节点可以使用它向自己发送 IPv6 数据包。它必须 不分配给任何物理接口。它被视为具有 Link-Local 作用域,可以认为是 Link-Local 单播 虚拟接口的地址(通常称为“环回 interface") 到一个无处可去的假想链接。

环回地址不能用作 IPv6 中的源地址 在单个节点之外发送的数据包。一个 IPv6 数据包 环回的目的地址绝不能发送到外部 单个节点,绝不能由 IPv6 路由器转发。一包 在目的地址为 loopback 的接口上接收到 被丢弃。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2018-09-23
    • 2020-02-24
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多