a
    Sic  ã                   @   s&   d dl mZ d dl mZ ddd„ZdS )é   )Úutils)Údefaultsú	left-mostNc                 C   s,  d }d}|d u rd}|d u r g }|d u r.t j}|D ]ð}t | |¡}|r2t |¡\}	}
|
dk r^q2|dkrp|
dkrpq2|dkr†||
d kr†q2|r”|
dk r”q2|dkr¬|
dkr¬|	 ¡  |rô|D ]<}|	d  |¡r´t |	d ¡\}}|r´|r´||f    S q´q2t t ||	d ¡¡\}}|r2|r2||f  S q2||fS )NFéÿÿÿÿr   é    é   z
right-most)	ÚdefsÚIPWARE_META_PRECEDENCE_ORDERÚutilZget_request_metaZget_ips_from_stringÚreverseÚ
startswithZget_ip_infoZget_best_ip)ÚrequestÚproxy_orderÚproxy_countÚproxy_trusted_ipsÚrequest_header_orderZ	client_ipZroutableÚkeyÚvalueÚipsZip_countÚproxy© r   úE/var/www/html/django/DPS/env/lib/python3.9/site-packages/ipware/ip.pyÚget_client_ip   s@    r   )r   NNN)Ú r   r
   r   r   r   r   r   r   r   Ú<module>   s       û