这可能吗?如何将ipv4转换为ipv6地址?
这里有几个例子:
0.0.0.0 -> ::
127.0.0.1 -> ::1
Run Code Online (Sandbox Code Playgroud)
我正在用Java搜索解决方案.
谢谢,
Yis*_*hai 30
没有有意义的IPv4到IPv6映射.像0.0.0.0和127.0.0.1这样的东西是规范中的特例,所以它们具有相同的含义.但是考虑到IPv4地址,它不会告诉您具体的IPv6地址是什么.您可以使用DNS查找来查看给定的IP地址是否解析为主机,而该主机除了IPv4地址之外还可以解析为IPv6地址,但DNS服务器必须配置为支持特定计算机的IP地址.
Dee*_*eep 19
混合双栈IPv6/IPv4实现通常支持特殊类别的地址,即IPv4映射地址.有关更多信息,请查看以下链接
http://en.wikipedia.org/wiki/IPv6#IPv4-mapped_IPv6_addresses
要将IPv4转换为映射的IPv6,可以使用以下命令:
String ip = "127.0.0.1";
String[] octets = ip.split("\\.");
byte[] octetBytes = new byte[4];
for (int i = 0; i < 4; ++i) {
octetBytes[i] = (byte) Integer.parseInt(octets[i]);
}
byte ipv4asIpV6addr[] = new byte[16];
ipv4asIpV6addr[10] = (byte)0xff;
ipv4asIpV6addr[11] = (byte)0xff;
ipv4asIpV6addr[12] = octetBytes[0];
ipv4asIpV6addr[13] = octetBytes[1];
ipv4asIpV6addr[14] = octetBytes[2];
ipv4asIpV6addr[15] = octetBytes[3];
Run Code Online (Sandbox Code Playgroud)
还检查一下
IPv6中曾经有一个用于IPv4地址的保留地址空间,您只需在其中添加96个0位的IPv4地址作为前缀.例如192.168.10.13 -> ::C0A8:0A0D.据我所知,这已被弃用,并且不再提供直接转换.