- var_dump: documentation ( source)
- preg_match: documentation ( source)
- ip2long: documentation ( source)
<?php
function ipCidrCheck($IP, $CIDRArray)
{
foreach ($CIDRArray as $CIDR) {
if (preg_match('#/#', $CIDR)) {
list ($net, $mask) = split("/", $CIDR);
} else {
$net = $CIDR;
$mask = 32;
}
$ip_net = ip2long($net);
$ip_mask = ~((1 << (32 - $mask)) - 1);
$ip_ip = ip2long($IP);
$ip_ip_net = $ip_ip & $ip_mask;
if ($ip_ip_net == $ip_net) {
return true;
}
}
return false;
}
var_dump(ipCidrCheck('167.98.48.254', ['167.98.48.0']));