如何将IPv4地址手动转换为IPv6地址?

blo*_*obs 3 ipv4 ipv6 subnet

我想知道是否有任何手动方法将IPv4地址转换为IPv6地址而不使用转换计算器或工具.例如:

我有一个IPv4地址,它给出如下:

129.130.100.11

当它被转换时,答案如下:

0::FFFF:8182:640B

是否有任何公式用于执行此类转换?

你能帮忙的话,我会很高兴.

Luk*_*son 6

对于IPv6,八位字节通常表示为十六进制数,而IPv4使用十进制数.因此,一种极其简化的方法是首先将每个十进制八位字节(8位)转换为十六进制:

129 becomes 81
130 becomes 82
100 becomes 64
11 becomes 0B
Run Code Online (Sandbox Code Playgroud)

然后将结果与前两个和最后两个八位字节之间的冒号连接起来:

8182:640B
Run Code Online (Sandbox Code Playgroud)

并添加::FFFF:到字符串的前面:

::FFFF:8182:640B
Run Code Online (Sandbox Code Playgroud)

但是,IPv6地址有一些不同的格式.我把它们留在上面,因为你可以看到它们都包含某种类型的十进制十六进制转换和一些简单的字符串格式.其他选择包括:

  • 6到4地址:
    • 2002:8182:640B:0:0:0:0:0
    • 2002:8182:640B ::
  • IPv4映射地址:
    • 0:0:0:0:0:FFFF:129.130.100.11
    • :: FFFF:129.130.100.11
    • :: FFFF:8182:640B
  • IPv4兼容性地址:
    • 0:0:0:0:0:0:129.130.100.11
    • :: 129.130.100.11
    • :: 8182:640B