o
    FhF                     @   sJ   d dl mZmZ d dlmZmZmZmZ ededgZG dd dZ	dS )    )IPv4AddressIPv4Network)OptionalSequenceSetUnionz149.154.160.0/20z91.108.4.0/22c                   @   s   e Zd Zddeeeeeef   fddZ	deeeef ddfddZ
deeeef ddfd	d
ZedddZdeeef defddZdeeef 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   K/var/www/html/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   st   t |trd|v rt|nt|}t |tr| j| d S t |tr-| j|  d S tdt	| d| d)N/zInvalid type of ipaddress: z ('z'))

isinstancestrr   r   r   addupdatehosts
ValueErrortyper   r   r   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   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   r   r   classmethodr    boolr!   r#   r   r   r   r   r   
   s    "
r   N)
	ipaddressr   r   typingr   r   r   r   r   r   r   r   r   r   <module>   s    