<?php
public static function isBlacklisted($ip) {
$blacklist = array(
array('ip' => '192.168.0.0/24', 'expire_time' => '2023-12-31 23:59:59'),
array('ip' => '10.0.0.0/8', 'expire_time' => '2023-12-31 23:59:59'),
array('ip' => '172.16.0.0/12', 'expire_time' => '2023-12-31 23:59:59'),
array('ip' => '127.0.0.1', 'expire_time' => '2023-12-31 23:59:59')
);
foreach ($blacklist as $item) {
$range = $item['ip'];
$expireTime = $item['expire_time'];
if (strtotime($expireTime) < time()) {
continue;
}
if (strpos($range, '/') !== false) {
list($subnet, $mask) = explode('/', $range);
if ((ip2long($ip) & ~((1 << (32 - $mask)) - 1)) == ip2long($subnet)) {
return true;
}
} else {
if ($ip == $range) {
return true;
}
}
}
return false;
}