【问题标题】:What's the meaning of ipv6 :: address?ipv6 ::地址是什么意思?
【发布时间】:2021-12-21 02:04:45
【问题描述】:

在我的代码中,我发现我的初始客户端和服务器配置具有ipv6 地址:::(相当于0:0:0:0:0:0:0:0?)。

struct SslConfigurations 
{
    std::string         clientIp{"::"};
    std::string         serverIp{"::"};
    UInt16              clientPort{0U};
    UInt16              serverPort{0U};
    ssl::SocketType     type{};
    ssl::SSLReturnCodes errorCode{};
};

这个地址是什么意思? 这个地址不改可以用吗?

【问题讨论】:

    标签: c++ ipv6


    【解决方案1】:

    它只是中间出现的四零组(0000)的快捷方式,可以省略。在示例中更明显:

    地址2001:0db8:0000:0000:0000:8a2e:0370:7334变成2001:db8::8a2e:370:7334

    :: 表示0000:0000:0000:0000:0000:0000:0000:0000

    :: 地址与 IPv4 世界中的00.0.0.0 含义相同:它代表所有网络。

    【讨论】:

      【解决方案2】:

      :: 是编写未指定 IPv6 地址 的便捷方式,它是一个全零保护值,用于指示不存在有效地址。

      这是来自IBM's online documentation的相关引用:

      未指定的地址是 0:0:0:0:0:0:0:0。你可以缩写 带有两个冒号 (::) 的地址。未指定的地址表示 没有地址,它永远不能分配给主机。它可以 由尚未分配地址的 IPv6 主机使用 它。例如,当主机发送数据包以发现是否存在 地址被另一个节点使用,主机使用未指定的地址 作为它的源地址。

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 2013-04-12
        • 2020-07-19
        • 1970-01-01
        • 2013-02-22
        • 2021-03-24
        • 1970-01-01
        • 2015-04-27
        相关资源
        最近更新 更多