概述
function ip2bin($ip)
{
if(filter_var($ip, FILTER_VALIDATE_IP, FILTER_FLAG_IPV4) !== false)
return base_convert(ip2long($ip),10,2);
if(filter_var($ip, FILTER_VALIDATE_IP, FILTER_FLAG_IPV6) === false)
return false;
if(($ip_n = inet_pton($ip)) === false) return false;
$bits = 15; // 16 x 8 bit = 128bit (ipv6)
while ($bits >= 0)
{
$bin = sprintf(“%08b”,(ord($ip_n[$bits])));
$ipbin = $bin.$ipbin;
$bits–;
}
return $ipbin;
}
function bin2ip($bin)
{
if(strlen($bin) <= 32)="" 32bits="" (ipv4)=""
return long2ip(base_convert($bin,2,10));
if(strlen($bin) != 128)
return false;
$pad = 128 – strlen($bin);
for ($i = 1; $i <= $pad;="" $i++)=""
{
$bin = “0”.$bin;
}
$bits = 0;
while ($bits <= 7)=""
{
$bin_part = substr($bin,($bits*16),16);
$ipv6 .= dechex(bindec($bin_part)).”:”;
$bits++;
}
return inet_ntop(inet_pton(substr($ipv6,0,-1)));
}
?>
最后
以上就是魔幻未来为你收集整理的php ip2long 32 64位,php 中IPV6 ip2long的问题解决办法_PHP教程的全部内容,希望文章能够帮你解决php ip2long 32 64位,php 中IPV6 ip2long的问题解决办法_PHP教程所遇到的程序开发问题。
如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。
发表评论 取消回复