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

5
我想知道是否有手动方法可以将IPv4地址转换为IPv6地址,而不需要使用转换计算器或工具。例如:
我有一个IPv4地址,它是:
129.130.100.11
当它被转换时,答案是:
0::FFFF:8182:640B
是否有公式用于执行此类转换?
任何帮助都会很好。
2个回答

9

对于IPv6来说,八位二进制数通常用十六进制数表示,而IPv4则使用十进制数。因此,一种非常简化的方法是先将每个十进制数(8位)转换为十六进制:

129 becomes 81
130 becomes 82
100 becomes 64
11 becomes 0B

然后将结果与第一个和第二个八位字节之间以及最后两个八位字节之间使用冒号连接:

8182:640B

在字符串前面添加::FFFF:

::FFFF:8182:640B

IPv6地址有几种不同的格式,上面我没有涉及到,因为它们都包括一些十六进制转换和一些简单的字符串格式化。其他可选格式包括:

  • 6to4地址
    • 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

1
自2006年起,IPv4兼容IPv6地址已被弃用(RFC 4291)。您可以安全地忽略它们。 - Dubu

3
虽然其他答案也是正确的,但有效的IPv6地址也可以以十进制点结尾,这样就可以提供这种类型的内容。
你只需编写
::FFFF:129.130.100.11

完成后,您就可以了。


1
谢谢,为了简洁起见,我省略了它,但已经更新了我的答案,包括其他可能的格式。 - Luke Peterson

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接