
    5i                        d dl mZmZ d dlZd dlmZ d dlmZmZm	Z	 d dl
mZ d Zdeegfdegfdegfd	egfd
egfdegfdegfdegfdegfdegfdegfde	gfdegfdegfdZd
efdefdefdefdefdefdZej        dej        dej        diZ G d d          Zedk    rFdZdZdZ ee          Ze                    e          Z ed           eD ]Z eej                   dS dS )    )urlparseparse_qsN)SocksCredential)SocksServerVersionSocksProtocolSOCKS5Method)SocksTargetc                 D    t          |                                           S N)strupper)xs    O/home/kali/Ninja/venv/lib/python3.11/site-packages/asysocks/common/clienturl.pystrur      s    A    version	server_ipserver_portis_bindprototimeoutendpoint_timeoutbuffer_sizeusernamepasswordauthtypeuseridagentid)typehostserverportbindr   r   etimeoutbsizeuserpassr   r   r   )isbindr   r   
buffersizer   r      c                   j    e Zd Zd Zd Zd Zd Zed	d            Zed             Z	ed             Z
dS )
SocksClientURLc                     d | _         d | _        d| _        d| _        t          j        | _        d| _        d| _        d | _	        d| _
        d | _        d | _        d | _        d | _        d | _        d | _        d S )N8  F
   i   )r   r   r   r   r   TCPr   r   r   ssl_ctxwsnet_reuseendpoint_ipendpoint_portr   r   r   r   selfs    r   __init__zSocksClientURL.__init__0   sx    $,$.$$, $*$,$$,$$$$$-$-$,,,r   c                 d    | j         d S t                      }| j         |_         | j        |_        |S r   )r   r   r   )r6   credss     r   	get_credszSocksClientURL.get_credsD   s1    	]
$


%=%.=%.	,r   c                    t                      }| j        |_        | j        |_        | j        |_        | j        |_        | j        |_        | j        |_        | j        |_        | j        |_        | j	        |_	        | j
        |_
        | j        |_        |                                 |_        | j        |_        | j        |_        |S r   )r	   r   r   r   r   r   r   r   r3   r4   r   r1   r:   
credentialr   r2   )r6   targets     r   
get_targetzSocksClientURL.get_targetL   s    ==&<&.^&'&<&.&,<&.'&'&+& 1&<&.nn&&&<&.'&	-r   c                     | j         t          j        k    r,| j        t	          d          | j        t	          d          | j        dk    rt	          d| j        z            | j        t	          d          d S )NzSOCKS server IP is missing!zSOCKS server port is missing!r   zbuffer_size is too low! %szEndpoint IP address is missing!)r   r   WSNETr   	Exceptionr   r   r3   r5   s    r   sanity_checkzSocksClientURL.sanity_check^   s    	\'---
n
1
2
22

3
4
44		/$2BB	C	CC		4	5	55 r   Nc                     g }d}d }| d d d         D ]r}t                               |                                          }|du r||_        ||_        d}n|j        |_        |j        |_        |}|                    |           s|d d d         S )NTF)r,   from_urlr>   r3   r4   r   r   append)urlsr3   r4   	proxylistfirst
prevtargeturlress           r   	from_urlszSocksClientURL.from_urlsl   s    )
%*$$B$Z 
 
c		 	 	%	%	0	0	2	23tmm!CO%CEE *CO".C:C	44R4r   c                 ^   t                      }t          |           }t          |j                                                  |_        |j        |_        |j        t          |j                  |_
        n|j        t          j        k    rd|_
        n|j        t          j        k    rd|_
        n|j        t          j        k    rd|_
        n|j        t          j        k    rd|_
        n|j        t          j        k    rd|_
        ns|j        t          j        k    rd|_
        nV|j        t          j        k    rd|_
        n9|j        t          j        k    rd|_
        n|j        t          j        k    rd |_
        |j        |_        |j        |_        |j        t,          v rt/          j                    |_        |j        mt7          |j                  }|D ]V}|t8          v rKt8          |         d         }t9          |         d         ||         d                   }t;          |||           W|S )Ni  i   r.   r   r*   )r,   r   r   schemer   r   hostnamer   r"   intr   HTTPHTTPSSOCKS5SOCKS5SSOCKS4SOCKS4SSOCKS4ASOCKS4ASr@   r   r   sockssslversionssslcreate_default_contextr1   queryr   clienturl_url2varsetattr)url_strrL   url_er]   kpnameparams          r   rE   zSocksClientURL.from_url   s   #
7

%"5<#5#5#7#788#+.#-
Z__3??
{(---3??
{(...3??
{(///3??
{(0003??
{(///3??
{(0003??
{(0003??
{(1113??
{(...3?#,#,[$$$+--3; [EK  5    qq!!$Uq!!$U1Xa[11US%	*r   c           	         t                      }t          |           }|j        |_        |j        rt          |j                  |_        |j        t          |j                  }dg}ddi}|D ]}|	                    d          rk	 t          |d                    |d         |vr3d||d         <   |
                    t          |d                              k# t          $ r
}Y d}~zd}~ww xY wt          |          t          |          k    rt          d          |                                 d}|}	|ddd         D ]}
t                      }|du rd	}|}n|	j        |_        |	j        |_        |}	d
|
z  }|
dk    rd}|D ]}|	                    |          r|d}|
dk    rd}||d         t           v ra||         d         }t           ||d                  d         D ]} ||          }t#          |t           ||d                  d         |           ||t%          |
          <   t          |          dk    r)|D ]%}||         j        t(          v rt          d          &n2|d         j        t(          v rt+          j                    |d         _        |D ]}||                                          g }|D ]<}
|
                    |t%          |
                                                              =|S )z

		Nr   0proxy   z,proxyies are not in sequential order! ERROR!TrD   Fzproxy%s   r*   zCSSL in proxy chaining not supported! That would be a lot of work...)r,   r   rP   r3   r"   rQ   r4   r]   r   
startswithrF   rA   lensortr   r   clienturl_param2varr_   r   r   rZ   r[   r\   r1   rB   r>   )r`   	lastproxyrK   r]   proxycounts	proxynumsrb   e	firstiter	prevproxyipdatastartstringstartposdatactargetss                    r   from_paramszSocksClientURL.from_params   sn   
 )#,)X + ]]9YCI5;d|9 	 	q||G 	!A$iii	
1Y		y1#ad))$$$   
dddd 
+#i..((
B
C
CC99"  qEDYUU",U$0UYa-KAvv[ 	 		[!! 	h	
ax	
899,	,	,Ahqkt#AhiiL1!4  1qwwAhiiL)!,	 	 	
 Ic!ff^^a \ \q|///Z[[[ 0\ n 000 799IcN   aQ<' 2 2a
>>)CFF#..001111	.s   AC
C.)C.)NN)__name__
__module____qualname__r7   r:   r>   rB   staticmethodrM   rE   r{    r   r   r,   r,   /   s          (    $
6 
6 
6    ,$ ) ) ,)V O O ,O O Or   r,   __main__zIhttp://alma.com:80/haha?proxytype=socks5&proxyport=66&proxyhost=127.0.0.1zhttp://alma.com:80/haha?proxytype=socks5&proxyport=66&proxyhost=127.0.0.1&proxy1type=socks4&proxy1port=9876&proxy1host=255.255.0.0zhttp://alma.com:80/haha?proxytype=socks5&proxyport=66&proxyhost=127.0.0.1&proxy2type=socks4&proxy2port=9876&proxy2host=255.255.0.0&proxy1type=socks5&proxy1port=6666&proxy1host=127.255.0.0aaaaaaaaaaaaaaaaaaaa)urllib.parser   r   r[   asysocks.common.credentialsr   asysocks.common.constantsr   r   r   asysocks.common.targetr	   r   r   rQ   boolrm   r^   rU   rW   rS   rZ   r,   r|   rK   or{   rL   printr=   __dict__r   r   r   <module>r      s4   , + + + + + + + 



 8 7 7 7 7 7 U U U U U U U U U U . . . . . .   t/0
1
3% 3%
 tf
]O
$!C5)C5!u
u
L>*u#  & ]# #&$sO   aaA L L L L L L L L` zR L EXc]]!!#&&  V%  r   