
    G˝i1                     T    d dl mZ d dlmZmZ  ed       ed      gZ G d d      Zy)    )Sequence)IPv4AddressIPv4Networkz149.154.160.0/20z91.108.4.0/22c                       e Zd Zddeeez  ez     dz  fdZdeez  ez  ddfdZdeez  ez  ddfdZ	e
dd       Zdeez  defd	Zd
eez  defdZy)IPFilterNipsc                 F    t               | _        |r | j                  |  y y N)set_allowed_ipsallow)selfr   s     Q/home/leshdev/mybot/venv/lib/python3.12/site-packages/aiogram/webhook/security.py__init__zIPFilter.__init__   s"    .1eDJJ     returnc                 4    |D ]  }| j                  |        y r
   )allow_ip)r   r   ips      r   r   zIPFilter.allow   s     	BMM"	r   r   c                 \   t        |t              rd|v rt        |      n
t        |      }t        |t              r| j                  j                  |       y t        |t              r*| j                  j                  |j                                y dt        |       d| d}t        |      )N/zInvalid type of ipaddress: z ('z'))

isinstancestrr   r   r   addupdatehoststype
ValueError)r   r   msgs      r   r   zIPFilter.allow_ip   s    b#$'2IR;r?Bb+&!!"%K($$RXXZ0/RzRDCCS/!r   c                      | t               S r
   )DEFAULT_TELEGRAM_NETWORKS)clss    r   defaultzIPFilter.default    s    ,--r   c                 T    t        |t              st        |      }|| j                  v S r
   )r   r   r   )r   r   s     r   checkzIPFilter.check$   s&    "k*RBT&&&&r   itemc                 $    | j                  |      S r
   )r%   )r   r&   s     r   __contains__zIPFilter.__contains__)   s    zz$r   r
   )r   r   )__name__
__module____qualname__r   r   r   r   r   r   r   classmethodr#   boolr%   r(    r   r   r   r   
   s    HS;%6%DEL #+k9 d 	"3,{: 	"t 	" . .'k) 'd '
 {!2  t  r   r   N)collections.abcr   	ipaddressr   r   r!   r   r.   r   r   <module>r1      s0    $ . "#       r   