HEX
Server: LiteSpeed
System: Linux CentOS-79-64-minimal 3.10.0-1160.119.1.el7.x86_64 #1 SMP Tue Jun 4 14:43:51 UTC 2024 x86_64
User: vishn3436 (5293)
PHP: 8.0.15
Disabled: NONE
Upload Files
File: //scripts/script-server/src/model/trusted_ips.py
import ipaddress


class TrustedIpValidator:
    def __init__(self, trusted_ips) -> None:
        self._simple_ips = {ip for ip in trusted_ips if '/' not in ip}
        self._networks = [ipaddress.ip_network(ip) for ip in trusted_ips if '/' in ip]

    def is_trusted(self, ip):
        if ip in self._simple_ips:
            return True

        if self._networks:
            address = ipaddress.ip_address(ip)
            for network in self._networks:
                if address in network:
                    return True

        return False