子网掩码是用来判断任意两台计算机的IP地址是否属于同一子网络。
最为简单的理解就是两台计算机各自的IP地址与子网掩码进行AND运算后,如果得出的结果是相同的,则说明这两台计算机是处于同一个子网络上的,可以进行直接的通讯。子网掩码换算为二进制,子网掩码连续全1的是网络地址,后面的是主机地址。function accessAble($ip){
$accessIp = [
"xxx.xxx.xxx.xxx/22",
"xxx.xxx.xxx.xxx/24",
"xxx.xxx.xxx.xxx/26",
"xxx.xxx.xxx.xxx/27",
];
foreach ($accessIp as $value) {
list($range, $mark_len) = explode("/", $value);
$mark = 0xFFFFFFFF <
$range_dec = ip2long($range);
$ip_dec = ip2long($ip);
if (($ip_dec & $mark) == ($range_dec & $mark)){
return true;
}
}
return false;
}