UNPKG

@push.rocks/smartproxy

Version:

A powerful proxy package with unified route-based configuration for high traffic management. Features include SSL/TLS support, flexible routing patterns, WebSocket handling, advanced security options, and automatic ACME certificate management.

54 lines (53 loc) 1.92 kB
/** * Utility class for IP address operations */ export declare class IpUtils { /** * Check if the IP matches any of the glob patterns * * This method checks IP addresses against glob patterns and handles IPv4/IPv6 normalization. * It's used to implement IP filtering based on security configurations. * * @param ip - The IP address to check * @param patterns - Array of glob patterns * @returns true if IP matches any pattern, false otherwise */ static isGlobIPMatch(ip: string, patterns: string[]): boolean; /** * Normalize IP addresses for consistent comparison * * @param ip The IP address to normalize * @returns Array of normalized IP forms */ static normalizeIP(ip: string): string[]; /** * Check if an IP is authorized using security rules * * @param ip - The IP address to check * @param allowedIPs - Array of allowed IP patterns * @param blockedIPs - Array of blocked IP patterns * @returns true if IP is authorized, false if blocked */ static isIPAuthorized(ip: string, allowedIPs?: string[], blockedIPs?: string[]): boolean; /** * Check if an IP address is a private network address * * @param ip The IP address to check * @returns true if the IP is a private network address, false otherwise */ static isPrivateIP(ip: string): boolean; /** * Check if an IP address is a public network address * * @param ip The IP address to check * @returns true if the IP is a public network address, false otherwise */ static isPublicIP(ip: string): boolean; /** * Convert a subnet CIDR to an IP range for filtering * * @param cidr The CIDR notation (e.g., "192.168.1.0/24") * @returns Array of glob patterns that match the CIDR range */ static cidrToGlobPatterns(cidr: string): string[]; }