o
    沪g                     @  s   U d dl mZ d dlmZ d dlmZ eeZded< dZ	ded< dZ
ded	< d
Zded< daded< daded< d ddZd ddZd!d"ddZd#ddZdS )$    )annotations)Final)
get_loggerr   _LOGGERzhttp://checkip.amazonaws.com_AWS_CHECK_IPzhttps://checkip.amazonaws.com_AWS_CHECK_IP_HTTPSzhttps://docs.streamlit.io/	_HELP_DOCN
str | None_external_ip_internal_ipreturnc                  C  sP   t durt S ttdd} | du rttdd} t| r| a t S tdt da t S )zGet the *external* IP address of the current machine.

    Returns
    -------
    string
        The external IPv4 address of the current machine.

    N   timeoutzEDid not auto detect external IP.
Please go to %s for debugging hints.)r
   _make_blocking_http_getr   r   _looks_like_an_ip_adressr   warningr   )response r   N/var/www/html/chatdoc2/venv/lib/python3.10/site-packages/streamlit/net_util.pyget_external_ip"   s   r   c               	   C  s   t durt S ddl} | | j| j*}z|d | d a W n ty+   da Y n	w W d   t S W d   t S 1 s?w   Y  t S )zGet the *local* IP address of the current machine.

    From: https://stackoverflow.com/a/28950776

    Returns
    -------
    string
        The local IPv4 address of the current machine.

    Nr   )z8.8.8.8   z	127.0.0.1)r   socketAF_INET
SOCK_DGRAMconnectgetsockname	Exception)r   sr   r   r   get_internal_ipA   s$   


r   r   urlstrr   floatc                 C  sF   dd l }z|j| |dj}t|tr| }|W S  ty"   Y d S w )Nr   r   )requestsgettext
isinstancer!   stripr   )r    r   r#   r%   r   r   r   r   ^   s   
r   addressboolc              	   C  sn   | d u rdS dd l }z
||j|  W dS  ttfy   Y nw z
||j|  W dS  ttfy6   Y dS w )NFr   T)r   	inet_ptonr   AttributeErrorOSErrorAF_INET6)r(   r   r   r   r   r   j   s    r   )r   r	   )r   )r    r!   r   r"   r   r	   )r(   r	   r   r)   )
__future__r   typingr   streamlit.loggerr   __name__r   __annotations__r   r   r   r
   r   r   r   r   r   r   r   r   r   <module>   s   

