`= 0) { $bin = sprintf(%08b, (ord($networkpack[$bits]))); $networklong = $bin.$networklong; $bits--; }} return $networklong;
}
/获取网络地址/
function getsegment($network,$mask){
if(filter_var($network, filter_validate_ip, filter_flag_ipv4)){
$ipv4long=iptolong($network);
$masklong=str_pad(str_repeat(1, $mask), 32, 0);
$segment=$ipv4long & $masklong;
return $segment;
}else{
$ipv6long=iptolong($network);
$masklong=str_pad(str_repeat(1, $mask), 128, 0);
$segment=$ipv6long & $masklong;
return $segment;
}
}
echo iptolong('106.32.59.244');
echo '
';
echo getsegment('106.32.59.244','29');
?> `
上面计算出来的网络地址就是106.32.59.244,为什么和下图计算出来的不一致呢?
回复内容: `= 0) { $bin = sprintf(%08b, (ord($networkpack[$bits]))); $networklong = $bin.$networklong; $bits--; }} return $networklong;
}
/获取网络地址/
function getsegment($network,$mask){
if(filter_var($network, filter_validate_ip, filter_flag_ipv4)){
$ipv4long=iptolong($network);
$masklong=str_pad(str_repeat(1, $mask), 32, 0);
$segment=$ipv4long & $masklong;
return $segment;
}else{
$ipv6long=iptolong($network);
$masklong=str_pad(str_repeat(1, $mask), 128, 0);
$segment=$ipv6long & $masklong;
return $segment;
}
}
echo iptolong('106.32.59.244');
echo '
';
echo getsegment('106.32.59.244','29');
?> `
上面计算出来的网络地址就是106.32.59.244,为什么和下图计算出来的不一致呢?
因为和你机器是32位还是64位有关系~