2016-07-29 74 views
-3

我有一个从存储地址为BINARY(16)的数据库中选择的IPv4 IP列表。有没有简单的方法将IPv6格式的地址转换为可读的IPv4格式? 这是IPv4地址是什么样子8ab8:7f70::将IPv6转换为IPV4 PHP

+0

IPv6地址为128位,而IPv4地址是唯一的32位。您不能以IPv4点分十进制表示法显示IPv6地址。 IPv6有它自己的符号。 [RFC 5952,IPv6地址文本表示的推荐](https://tools.ietf.org/html/rfc5952)是表示IPv6地址的IETF标准。 –

+1

我有用IPv6格式表示的IPv4地址,例如8ab8:7f70 :: – pedmillon

+1

然后只需将四个字节单独转换为十进制字符串,然后连接,在每个字符之间放置一个“。”。 –

回答

0

罗恩莫平所描述的,该解决方案是很简单的

$ipv6 = "8ab8:7f70::"; 
$ipv4 = hexdec(substr($ipv6, 0, 2)). "." . hexdec(substr($ipv6, 2, 2)). "." . hexdec(substr($ipv6, 5, 2)). "." . hexdec(substr($ipv6, 7, 2)); 
+1

这不会返回正确的值。 –

+1

这个解决方案是无稽之谈,因为整个前提是无稽之谈。 – deceze