<?php

$allowedSubnets = [
    '192.168.1.0/24',
    '10.0.0.0/8',
    '172.16.0.0/12',
    '77.91.72.48/32',
    '93.140.0.0/12',
    '94.140.0.0/12'
];

function isAllowedIP($ip, $subnets) {
    foreach ($subnets as $subnet) {
        list($subnetBase, $bits) = explode('/', $subnet);
        $ipLong = ip2long($ip);
        $subnetLong = ip2long($subnetBase);
        $mask = -1 << (32 - $bits);
        $subnetLong &= $mask;

        if (($ipLong & $mask) === $subnetLong) {
            return true; // Совпадение найдено
        }
    }
    return false; // Нет совпадений
}