o
    5˜Žj1  ã                   @   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   úU/var/www/kodo/Anonymous/send/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    þ