Bash ipv6calc在从ipv4转换到ipv6时输出错误的地址?

Bash ipv6calc在从ipv4转换到ipv6时输出错误的地址?,bash,ipv6,Bash,Ipv6,尝试将ipv4列表文件转换为ipv6时出现奇怪问题: ipv6calc -q --action conv6to4 --in ipv4 1.1.23.1 --out ipv6 2002:101:1701:: 为了验证结果是否正确,我使用了一些在线转换器,似乎1.1.23.1是2002:0:0:0:0:101:1701(或者2002:101:1701)。 所以最后一个“:”应该删除,2002年应该有额外的“:” 我真的不想使用sed/awk命令来操纵这个结果,所以问题是: 是否有其他cmd/lin

尝试将ipv4列表文件转换为ipv6时出现奇怪问题:

ipv6calc -q --action conv6to4 --in ipv4 1.1.23.1 --out ipv6
2002:101:1701::
为了验证结果是否正确,我使用了一些在线转换器,似乎1.1.23.1是2002:0:0:0:0:101:1701(或者2002:101:1701)。 所以最后一个“:”应该删除,2002年应该有额外的“:”

我真的不想使用sed/awk命令来操纵这个结果,所以问题是:

  • 是否有其他cmd/linux软件
  • 这是不是在ipv6 calc中修复了,我是否做错了什么

  • 谢谢

    这是正确的6to4地址。6to4子网的格式为
    2002:IP4\u HI:IP4\u LO::/48
    IP4_HI
    是IPv4地址的前16位,而
    IP4_LO
    是地址的低16位

    例如,IPv4地址
    1.2.3.4
    为您提供6to4子网
    2002:0102:0304::/48

    有关更多详细信息,请参阅

    另一个问题是,这是否真的是你想要的地址?还有其他方法可以将IPv4地址映射到IPv6地址。例如,有,通常写为
    ::ffff:1.2.3.4


    您需要的地址格式取决于您要使用它的目的。

    这是正确的6to4地址。6to4子网的格式为
    2002:IP4\u HI:IP4\u LO::/48
    IP4_HI
    是IPv4地址的前16位,而
    IP4_LO
    是地址的低16位

    例如,IPv4地址
    1.2.3.4
    为您提供6to4子网
    2002:0102:0304::/48

    有关更多详细信息,请参阅

    另一个问题是,这是否真的是你想要的地址?还有其他方法可以将IPv4地址映射到IPv6地址。例如,有,通常写为
    ::ffff:1.2.3.4


    您需要的地址格式取决于您要使用它的目的。

    这是正确的6to4地址。6to4子网的格式为
    2002:IP4\u HI:IP4\u LO::/48
    IP4_HI
    是IPv4地址的前16位,而
    IP4_LO
    是地址的低16位

    例如,IPv4地址
    1.2.3.4
    为您提供6to4子网
    2002:0102:0304::/48

    有关更多详细信息,请参阅

    另一个问题是,这是否真的是你想要的地址?还有其他方法可以将IPv4地址映射到IPv6地址。例如,有,通常写为
    ::ffff:1.2.3.4


    您需要的地址格式取决于您要使用它的目的。

    这是正确的6to4地址。6to4子网的格式为
    2002:IP4\u HI:IP4\u LO::/48
    IP4_HI
    是IPv4地址的前16位,而
    IP4_LO
    是地址的低16位

    例如,IPv4地址
    1.2.3.4
    为您提供6to4子网
    2002:0102:0304::/48

    有关更多详细信息,请参阅

    另一个问题是,这是否真的是你想要的地址?还有其他方法可以将IPv4地址映射到IPv6地址。例如,有,通常写为
    ::ffff:1.2.3.4



    您需要的地址格式取决于您将使用它的用途。

    您确实意识到您实际上并没有将IPv4地址转换为IPv6,不是吗?这应该做的是为6to4中继服务创建一个IPv6地址。您确实意识到您实际上并没有将IPv4地址转换为IPv6,不是吗?这应该做的是为6to4中继服务创建一个IPv6地址。您确实意识到您实际上并没有将IPv4地址转换为IPv6,不是吗?这应该做的是为6to4中继服务创建一个IPv6地址。您确实意识到您实际上并没有将IPv4地址转换为IPv6,不是吗?这应该为6to4中继服务创建一个IPv6地址。谢谢你的回答,也请阅读你的链接。但是,当我尝试此格式时,我的服务器拒绝作为“无效ipv6地址”。在subnetonline中,我可以看到1.2.3.4被翻译为2002::102:304,所以我仍然不明白。您还没有说您将使用该地址做什么,所以我们只能猜测。请注意,我写的是6到4个子网,而不是单个地址。每个IPv4地址使用6to4获得一个子网,其中包含2^80个不同的IPv6地址。是的,我没有。这是关于网络元素配置的。我需要1.1.21.1/24来转换为IPv6格式(根据相同的主机,我猜是/120)。机器只接受2002::格式,任何其他格式似乎都无效(如上面的示例所示)。所以我有在线转换器显示我的初始“正确”格式,而ipv6提供不同的输出。@aprin,我希望你不打算在互联网上使用这种人为的地址。实际上没有神奇的IPv4到IPv6地址转换。此外,使用/120子网会给IPv6带来麻烦,因为使用掩码长度超过/64的子网(少数特殊情况除外)会导致问题。@RonMaupin:根据用途,a/120在配置中非常有意义。例如,如果我重写一个以前只使用IPv4的服务器以同时接受IPv6和IPv4连接(使用
    IPv6\u V6ONLY
    选项),则该套接字将开始使用IPv4映射的IPv6地址接收IPv4连接,这意味着我必须将应用程序中的访问控制列表从例如
    1.2.3.0/24
    转换为
    ::ffff:1.2.3.0/120
    。感谢您的回答,也请阅读您的链接。但是,当我尝试此格式时,我的服务器拒绝作为“无效ipv6地址”。在subnetonline中,我可以看到1.2.3.4被翻译为2002::102:304,所以我仍然不明白。您还没有说您将使用该地址做什么,所以我们只能猜测。请注意,我写的是6到4个子网,而不是单个地址。每个IPv4地址都会获得一个2^80个不同的子网