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rtt|	 tt d$}|	D ]}|d%|jj |j|jf 7 }qt| 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
