o
    �õ±j_	  ã                   @   sZ   d dl Z d dlZd dlZd dlmZmZ d dlmZ dd„ Zdd„ Z	e
dkr+e	ƒ  dS dS )	é    N)ÚSOCKSServerÚ	srvlogger)Ú
__banner__c               
   Ã   s&  �zùdd l } | jdd�}|jdddd� |jdtd	d
d� |jddd� |jddd� |jdtddd� |jdtddd� |jddddd� |jdddddd � |jd!d"dd#d� | ¡ }|jd$u rfttƒ |jd%krqt	 
tj¡ d }|j}|j}g d&¢}d }|jd ur‘t ¡ }|j|j|jd'� |jd(u r©dd)lm} dd*lm}	 |	ƒ }
t ¡ }t|j|j||||d+�}|jd(u rÇ|||
|ƒ}t | ¡ ¡ |jd$u rÝtd,|j|j|d u rØd-nd.f ƒ |jd(u rñ	 |  ¡ I d H }tt!|ƒƒ qã| ¡ I d H  W d S  t"�y } zt|ƒ W Y d }~d S d }~ww )/Nr   z/Universal proxy server (SOCKS4/5 and HTTP proxy)Údescriptionz--listen-ipz	127.0.0.1z	Listen IP)ÚdefaultÚhelpz--listen-porti8  zListen port)Útyper   r   z--certzSSL certificate file)r   z--keyzSSL key filez--client-timeouté
   zAHow much time to wait ftill the client finishes initial handshakez--buffer-sizei (  zProxy buffer sizez-mz	--monitorÚ
store_truezMonitor mode.)Úactionr   z-vz	--verboseÚcountÚ	Verbosity)r   r   r   z-sz--silentzdont print bannerFé   )ÚSOCKS4ÚSOCKS5ÚHTTP)ÚkeyfileT)ÚInterceptServer)ÚCertManager)Úclient_timeoutÚbuffer_sizeÚsupported_protocolsz*Proxy server is up and running on %s:%s %sÚ z(SSL))#ÚargparseÚArgumentParserÚadd_argumentÚintÚ
parse_argsÚsilentÚprintr   Úverboser   ÚsetLevelÚloggingÚDEBUGr   r   ÚcertÚsslÚ
SSLContextÚload_cert_chainÚkeyÚmonitorÚasysocks.intercepting.serverr   Úasysocks.certmanagerr   ÚasyncioÚQueuer   Ú	listen_ipÚlisten_portÚcreate_taskÚrunÚgetÚstrÚ	Exception)r   ÚparserÚargsÚssl_ctxr   r   r   Úmonitor_dispatch_qr   r   ÚcertmanagerÚ	log_queueÚserverÚ
trafficlogÚe© r>   ú�/root/aizidognhua/tmp/workspace/projects/ec89d86c-575f-41c9-af57-ac45cbdbf775/venv/lib/python3.10/site-packages/asysocks/examples/socksproxy.pyÚamain	   sl   €



ú
	
"
þ€ÿr@   c                   C   s   t  tƒ ¡ d S )N)r,   r1   r@   r>   r>   r>   r?   ÚmainK   s   rA   Ú__main__)r,   r"   r%   Úasysocks.serverr   r   Úasysocks._versionr   r@   rA   Ú__name__r>   r>   r>   r?   Ú<module>   s   B
ÿ