関数 ip2bin($ip)
{
If(filter_var($ip, FILTER_VALIDATE_IP, FILTER_FLAG_IPV4) !== false)
returnbase_convert(ip2long($ip),10,2);
If(filter_var($ip, FILTER_VALIDATE_IP, FILTER_FLAG_IPV6) === false)
false を返します
If(($ip_n = inet_pton($ip)) === false) false を返します
$bits = 15 // 16 x 8 ビット = 128 ビット (IPv6)
一方 ($bits >= 0)
{
$bin = sprintf("%08b",(ord($ip_n[$bits])))
$ipbin = $bin.$ipbin ;
$bits--;
}
$ipbin を返します。
}
関数 bin2ip($bin)
{
If(strlen($bin)
return long2ip(base_convert($bin,2,10));
If(strlen($bin) != 128)
false を返します
$pad = 128 - strlen($bin);
for ($i = 1; $i
{
$bin = "0".$bin;
}
$ビット = 0;
while ($bits
{
$bin_part = substr($bin,($bits*16),16);
$ipv6 .= dechex(bindec($bin_part)).":"
$bits++;
}
戻り inet_ntop(inet_pton(substr($ipv6,0,-1)));
}
?>
http://www.bkjia.com/PHPjc/632086.html |
www.bkjia.com