³»ºÎIP ÁÖ¼Ò °Ë»ç
## check private networks
##
function is_localnet($ipaddr)
{
static $localnet =
array('10.0.0.0'=>'255.0.0.0','172.16.0.0'=>'255.240.0.0','192.168.0.0'=>'255.255.0.
0');
if(!preg_match('/^(10|172|192\.168)\./',$ipaddr)) return; // is public ipaddr
$ubit = sprintf('%032b',ip2long($ipaddr)); // inet_atob()
foreach($localnet AS $pnet=>$pmask)
{
$pbit = sprintf('%032b',ip2long($pmask));
$unet = ($ubit & $pbit);
$unet = long2ip(bindec("$unet")); // inet_btoa()
if($pnet == $unet)
{
$r = TRUE;
break;
}
}
return $r;
}
|