编辑代码

<?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()) {
            // IP已过期,跳过判断
            continue;
        }

        if (strpos($range, '/') !== false) {
            // IP段
            list($subnet, $mask) = explode('/', $range);
            if ((ip2long($ip) & ~((1 << (32 - $mask)) - 1)) == ip2long($subnet)) {
                // IP在黑名单中
                return true;
            }
        } else {
            // 单个IP
            if ($ip == $range) {
                // IP在黑名单中
                return true;
            }
        }
    }

    return false;
}