o
    �õ±j}	  ã                   @   sj   d dl Z d dlZd dlmZ d dlmZ d dlmZ d dlm	Z	 d dl
mZ dd„ Zed	kr3eƒ  dS dS )
é    N)Úlogger)Ú
__banner__)ÚSOCKSClient)ÚSocksClientURL)ÚSocksLitenerCommsc                  C   s  dd l } | jdd�}|jddddd� |jd	d
tddd� |jddtd dd� |jddddd� |jddd� |jdtdd� |jdddd� | ¡ }|jdkrWt tj	¡ n
|jd krat d¡ t
|j|jƒ}d }g }|jd d d!… D ]/}t |¡}|d u rŒ|j|_|j|_|j|_n| ¡ }|j|_|j|_|j|_|}| |¡ qt|d d d!… }d"d#„ |D ƒ}	d }
|jdkr¿tt|	ƒƒ ttƒ d$}|	D ]}|d%|jj ¡ |j|jf 7 }qÇt|ƒ d&|j|j||j|jf }t|ƒ t ||	|
ƒ}td'ƒ t! "| "¡ ¡ d S )(Nr   z1Transparent TCP tunnel for SOCKS unaware clients.)Údescriptionz-lz--listen-ipz	127.0.0.1zListener IP address to bind to)ÚdefaultÚhelpz-pz--listen-portig+  zListener port number to bind to)Útyper   r	   z-tz	--timeoutzEndpoint timeoutz-vz	--verboseÚcount)Úactionr   Údst_ipz#IP address of the desination server)r	   Údst_portz%port number of the desination service)r
   r	   Úproxy_connection_stringsÚ*zKconnection string(s) decribing the socks proxy server connection properties)Únargsr	   é   é   éÿÿÿÿc                 S   s   g | ]}|  ¡ ‘qS © )Ú
get_target)Ú.0Úxr   r   ú�/root/aizidognhua/tmp/workspace/projects/ec89d86c-575f-41c9-af57-ac45cbdbf775/venv/lib/python3.10/site-packages/asysocks/examples/sockstunnel.pyÚ
<listcomp>5   s    zmain.<locals>.<listcomp>Ú z|--->| (%s) %s:%s znConnection layout
	
	CLIENT --->|
	CLIENT --->|(LISTENER) %s:%s  %s |--->| (FINAL DST) %s:%s
	CLIENT --->|
	
	z Waiting for incoming connections)#ÚargparseÚArgumentParserÚadd_argumentÚintÚ
parse_argsÚverboser   ÚsetLevelÚloggingÚDEBUGr   Ú	listen_ipÚlisten_portr   r   Úfrom_urlr   Úendpoint_ipr   Úendpoint_portÚtimeoutÚendpoint_timeoutr   Ú	server_ipÚserver_portÚappendÚprintÚstrr   ÚversionÚnameÚupperr   ÚasyncioÚrun)r   ÚparserÚargsÚcommsÚprev_urlÚproxiesÚcon_strÚurlÚprev_targetÚtargetsÚcredentialsÚtunnelÚtargetÚlayoutÚclientr   r   r   Úmain   s\   





 úrD   Ú__main__)r#   r4   Úasysocksr   Úasysocks._versionr   Úasysocks.clientr   Úasysocks.common.clienturlr   Úasysocks.common.commsr   rD   Ú__name__r   r   r   r   Ú<module>   s   H
ÿ