<?php
$ip1 = "192.16.1.13";
$ip2 = "255.255.255.0";
$ip1 = explode(".", $ip1);
$ip2 = explode(".", $ip2);
for($i=0; $i<4; $i++){
if($ip1[$i]-$ip2[$i]==$ip1[$i] or $ip1[$i]-$ip2[$i]==$ip2[$i]){
$ip[] = 0;
}else{
$ip[] = $ip1[$i];
}
}
$ip = implode(".", $ip);
echo $ip;
?>

解决方案 »

  1.   

    <?php
    /*
    如:192.16.1.13
    与:255.255.255.0
    进行,,与算,,要求出它为192.16.1.0
    */
    $ip = "192.16.1.13";
    echo get_net($ip,"255.255.255.0");function get_net($ip,$hide="255.255.255.255") {
      $a = explode(".",$ip);
      $b = explode(".",$hide);  for($i=0;$i<4;$i++)
        $r[$i] = (int)$a[$i] & (int)$b[$i];
      return join(".",$r);
    }
    ?>
      

  2.   

    很感谢大家啊,,,点给分的啊,,我不大会用这个....还有没有方法,,来判断这个IP地址,,输入是否可法的吗
    格式是"*.*.*.*"形式的...function  checkIp($ip){  
               $e="(1[0-9]{2}  &brvbar;[1-9]?[0-9]  &brvbar;2[0-4][0-9]  &brvbar;25[0-5])";  
               if(ereg("^$e\.$e\.$e\.$e$",$ip)){  
                           echo  $ip."通过<br>";  
               }  
               else  
                           echo  $ip."错误<br>";  
    }  
    checkIP("100.210.0.45");  
    checkIP("101.210.00.45");  这种形式行不行啊...
      

  3.   

    function checkip($ip){
            $e="(1[0-9]{2}|[1-9]?[0-9]|2[0-4][0-9]|25[0-5])";
            if(ereg("^$e\.$e\.$e\.$e$",$ip)){
                    return 1;
            }else{
                    return 0;
            }
    }