o
    LDi1                     @   s>   d dl mZ d dlmZmZ ededgZG dd dZdS )    )Sequence)IPv4AddressIPv4Networkz149.154.160.0/20z91.108.4.0/22c                   @   s   e Zd ZddeeeB eB  dB fddZdeeB eB ddfddZdeeB eB ddfd	d
Z	e
dddZdeeB defddZdeeB defddZdS )IPFilterNipsc                 C   s   t  | _|r| j|  d S d S N)set_allowed_ipsallow)selfr    r   d/var/www/www-root/data/www/77.83.87.30/venv/lib/python3.10/site-packages/aiogram/webhook/security.py__init__   s   zIPFilter.__init__returnc                 G   s   |D ]}|  | qd S r   )allow_ip)r   r   ipr   r   r   r
      s   zIPFilter.allowr   c                 C   sx   t |trd|v rt|nt|}t |tr| j| d S t |tr-| j|  d S dt| d| d}t	|)N/zInvalid type of ipaddress: z ('z'))

isinstancestrr   r   r	   addupdatehoststype
ValueError)r   r   msgr   r   r   r      s   


zIPFilter.allow_ipc                 C   s   | t S r   )DEFAULT_TELEGRAM_NETWORKS)clsr   r   r   default    s   zIPFilter.defaultc                 C   s   t |ts	t|}|| jv S r   )r   r   r	   )r   r   r   r   r   check$   s   

zIPFilter.checkitemc                 C   s
   |  |S r   )r   )r   r   r   r   r   __contains__)   s   
zIPFilter.__contains__r   )r   r   )__name__
__module____qualname__r   r   r   r   r   r
   r   classmethodr   boolr   r    r   r   r   r   r   
   s     r   N)collections.abcr   	ipaddressr   r   r   r   r   r   r   r   <module>   s    