由于需要将IPV6地址计算成long型,将long型计算成IPV6地址,然而PHP没有提供这个函数。不想自己去写,所以bing一次,又得,记之,希望能帮到其他朋友。
文中函数源地址:http://phpsnips.com/466/Aggregate-IP-addresses-and-IP-prefixes,-including-IPv4-and-IPv6-address-notations
PHP-Gmp库安装详解:http://php.net/manual/en/gmp.requirements.php
ip and long 在线计算:http://webdnstools.com/dnstools/ipcalc
注意:下面函数都需要使用php-gmp库,关于gmp库详解请参考上面链接。
将IPV6地址计算成long型ip2long6()函数(已验证,无误):
= 0) { $bin = sprintf("%08b",(ord($ip_n[$bits]))); $ipv6long = $bin.$ipv6long; $bits--; } return gmp_strval(gmp_init($ipv6long,2),10); } ?>
将long型计算成IPV6地址long2ip6()函数(已验证,无误):