a
    y{JhF                     @   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eeeeeef   dddZ	eeeef ddddZ
eeeef ddd	d
Zed dddZeeef edddZeeef edddZdS )IPFilterN)ipsc                 C   s   t  | _|r| j|  d S N)set_allowed_ipsallow)selfr	    r   J/var/www/shaz/venv/lib/python3.9/site-packages/aiogram/webhook/security.py__init__   s    zIPFilter.__init__)r	   returnc                 G   s   |D ]}|  | qd S r
   )allow_ip)r   r	   ipr   r   r   r      s    zIPFilter.allow)r   r   c                 C   st   t |tr"d|v rt|nt|}t |tr:| j| n6t |trV| j|  ntdt	| d| dd S )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_ip)r   c                 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)itemr   c                 C   s
   |  |S r
   )r!   )r   r"   r   r   r   __contains__(   s    zIPFilter.__contains__)N)__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
   