IPv6 / IPv4 第三形式转换?

lee*_*d00 7 ipv6 ipv4 conversion

我正在阅读有关如何在 Ubuntu配置 IPv6 的内容,我已经阅读了有关阅读 IPv6 地址的部分,尽管前两个示例对我来说很有意义,但最后一个示例让我有点不知所措,因为它已经过去几年了我的最后一节网络课:

如何将第三种形式转换为长形式?

这是我遇到问题的示例:

  • 第三种形式:          - 2002::10:0.0.1
  • 长格式:          - 2002:0000:0000:0000:0000:0000:0a00:0001
  • 规范形式: - 2002::a00:1

我对十六进制的理解是,当数超过 9 时,不是以数字 10 结尾,而是在增加下一列中的数字之前以 A、B、C、D、E 和 F 结尾。

你能用数学告诉我这是如何工作的,而不仅仅是一些在线 JavaScript 转换器吗?

谢谢!

Sha*_*den 6

在 IPv4 中,每个字节由一个数字表示,从 0 到 255;在 IPv6 中,使用十六进制表示,从 00 到 ff。在那里完成的转换是将 IPv4 地址的四个字节映射到 IPv6 地址的最后 4 个字节:

IPv4:

aaa.bbb.ccc.ddd
Run Code Online (Sandbox Code Playgroud)

IPv6:

XXXX::AABB:CCDD
Run Code Online (Sandbox Code Playgroud)

因此,输入为 时10.0.0.1,字节为0a, 00, 00, 01; 导致:

::0a00:0001
Run Code Online (Sandbox Code Playgroud)

(缩短为::a00:1

再举一个例子,让我们看看192.168.50.254

::c0a8:32fe
Run Code Online (Sandbox Code Playgroud)

  • 是的,除了每个 IPv4 八位字节 8 位。IPv4 有 4 个八位字节,共 32 位,而 IPv6 有 8 个以冒号分隔的 16 位组,共 128 位。 (2认同)