我需要将IPv6地址转换为IPv4地址。要做到这一点,我使用的代码从pedmillon's answer to a related question:在PHP中将IPv6转换为IPv4地址
$ipv6 = $_SERVER['REMOTE_ADDR'];
$ipv4 = hexdec(substr($ipv6, 0, 2)). "." . hexdec(substr($ipv6, 2, 2)). "." . hexdec(substr($ipv6, 5, 2)). "." . hexdec(substr($ipv6, 7, 2));
我试图在我的本地和:: 1被转换为0.1.0.0。这段代码是否正确工作?
我相信它应该显示127.0.0.1而不是0.1.0.0。
IPv6地址不能转换为IPv4地址。这就像想把苹果变成香蕉一样。首先,有** 340,282,366,920,938,463,463,374,607,431,768,211,456 **可能的IPv6地址,而只有** 4,294,967,296 **可能的IPv4地址。所以让我细化一下:就像想把几个苹果星系变成一个香蕉一样。 – spectras
嗯..那么它会是最好的解决方案,如果我强制我的Apache使用IPv4地址,而不是? –
面向未来的解决方案将支持ipv6。为了简化转换,如果你不想处理这两个系统,你可以告诉你的服务器你想要ipv4地址映射到ipv6地址空间,然后你可以使用ipv6。 – spectras