g~dZddlZddlZ ddlZddlZddl Z dZ dZ e ZGddejZGddej"ZGd d ej&ej(Zed k(rddlZ eej2d Zej:ee j<deZe dejCdjEjGze dejCdjEjGzyy#e$rddlmZddlm ZY wxYw#eef$rd ZYwxYw)z SocksiPy + urllib2 handler version: 0.3 author: e This module provides a Handler which you can use with urllib2 to allow it to tunnel your connection through a socks.sockssocket socket, with out monkey patching the original socket... NcH|j}|j||SN)copyupdate)abds ;/opt/hc_python/lib/python3.12/site-packages/sockshandler.py merge_dictr s AHHQK Hc d|vr%tjtj|yd|vrtj|yy#YyxYw)N:.FT)socket inet_ptonAF_INET6 inet_aton)ss r is_iprsR  !8   V__a 0AX   Q   s(AAA ceZdZddZdZy)SocksiPyConnectionNcd||||||f|_tjj|g|i|yr) proxyargshttplibHTTPConnection__init__ self proxytype proxyaddr proxyportrdnsusernamepasswordargskwargss r rzSocksiPyConnection.__init__+s4#Y 48T''>t>v>r c|j\}}}}}}|xr|tv} tj|j|j f|j d||||||tjtjdff } ||_y#tj$rG}|r:dt|vr-t|jsd}tj|nYd}~nd}~wwxYw)N0x5bF)rsocks4_no_rdnssockscreate_connectionhostporttimeoutr IPPROTO_TCP TCP_NODELAY SOCKS4Errorstrraddsock) rrr r!r"r#r$r5es r connectzSocksiPyConnection.connect/sFJnnCIy$(7 7 ..YY *DLL$y)T8X((&*<*.buildZs3DGGV,B%tyyt$PW^[]^DKr Nrdo_openrreqrZs` r http_openzSocksiPyHandler.http_openY ||E3''r c4dfd }j||S)Ncftj|}tj|||d|}|SrW)r rRr?r%rXs r rZz)SocksiPyHandler.https_open..buildas3DGGV,B& 4QX_\^_DKr r[r\r^s` r https_openzSocksiPyHandler.https_open`rar N)r:r;r<rr`rdr=r r rPrPSs+ ((r rP__main__r(iZ# localhostzHTTP: zhttp://httpbin.org/ipzHTTPS: zhttps://httpbin.org/ip)$__doc__rrHrSr ImportErrorurllib.requestrequest http.clientclientr+r rsetr*rrrAr?rT HTTPSHandlerrPr:sysintargvr. ValueError IndexError build_openerPROXY_TYPE_SOCKS5openerprintopenreaddecoder=r r r{sH "   //2'11 (g))7+?+?(( z388A;"W ! !/%2I2I;X\"] ^F (V[[!89>>@GGI IJ )fkk":;@@BIIK KLo"$!!"v  #s#D 9D8 D54D58 EE