将IPv6转换为IPV4 PHP

将IPv6转换为IPV4 PHP,php,binary,ipv6,ipv4,Php,Binary,Ipv6,Ipv4,我有一个从数据库中选择的IPv4 IP列表,该数据库将地址存储为二进制(16)。有没有简单的方法将IPv6格式化的地址转换为人类可读的IPv4格式? 这就是IPv4地址的样子,正如Ron Maupin所描述的,解决方案非常简单 $ipv6 = "8ab8:7f70::"; $ipv4 = hexdec(substr($ipv6, 0, 2)). "." . hexdec(substr($ipv6, 2, 2)). "." . hexdec(substr($ipv6, 5, 2)). "." .

我有一个从数据库中选择的IPv4 IP列表,该数据库将地址存储为二进制(16)。有没有简单的方法将IPv6格式化的地址转换为人类可读的IPv4格式?
这就是IPv4地址的样子,正如Ron Maupin所描述的,解决方案非常简单

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

IPv6地址为128位,而IPv4地址仅为32位。不能以IPv4点十进制表示法显示IPv6地址。IPv6有自己的符号。是表示IPv6地址的IETF标准。我有以IPv6格式表示的IPv4地址,例如8ab8:7f70::然后只需将四个字节分别转换为十进制字符串,然后串联,在每个字节之间放置一个
。这不会返回正确的值。此解决方案毫无意义,因为整个前提都是胡说八道。此代码不能正常工作,返回的ipv4与转换的ipv6不同。