IPv6/IPv4 第三形式转换?

IPv6/IPv4 第三形式转换?

我正在阅读关于如何在 Ubuntu 上配置 IPv6,我已经读到关于阅读 IPv6 地址的部分,虽然前两个例子对我来说是有意义的,但最后一个例子我有点不明白,因为距离我上一次网络课程已经过去了几年:

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

下面是我遇到问题的示例:

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

我对十六进制的理解是,当你数到九之后,最终结果不是十,而是 A、B、C、D、E 和 F,然后再增加下一列的数字。

你能用数学而不是一些在线 JavaScript 转换器向我展示这是如何实现的吗?

谢谢你!

答案1

在 IPv4 中,每个字节都用一个数字表示,范围是 0 到 255;而在 IPv6 中,则改用十六进制表示,范围是 00 到 ff。此处进行的转换是将 IPv4 地址的四个字节映射到 IPv6 地址的最后 4 个字节:

IPv4:

aaa.bbb.ccc.ddd

IPv6:

XXXX::AABB:CCDD

因此,输入为10.0.0.1,字节为0a000001;导致:

::0a00:0001

(缩写为::a00:1

再举一个例子192.168.50.254

::c0a8:32fe

答案2

您可以查看使用 v6decode 转换为不同的格式;尝试将鼠标悬停在地址的不同部分上,看看它们在不同格式之间有何关联。

相关内容