[python] httplib a socks proxy

slush slush na centrum.cz
Úterý Červenec 15 16:05:05 CEST 2008


Diky za linky, ten prvni me nakopnul spravnym smerem ;-).

Nasleduje funkcni reseni tunelovani:

import socks #SockSiPy
import socket
proxy = socks.socksocket()
proxy.setproxy(socks.PROXY_TYPE_SOCKS5, 'localhost', 9050) # Nakonektim se
na proxy
proxy.connect(("www.domena.com", 80)) # Reknu ji, at se nakonekti na cilovy
pocitac
conn = httplib.HTTPConnection("www.domena.com", 80) # Reknu httplib, s cim
ma komunikovat
conn.sock = proxy # A podstrcim ji otevreny existujici socket na cilovy
pocitac

Nakonec to je temer standardni cesta, jen jsem se musel ve zdrojacich
httplib presvedcit, ze prepsani conn.sock mym socketem nenadela neplechu...

Diky,
Marek

2008/7/15 Bystroushaak <Bystrousak na seznam.cz>:

> Dobrý den. Možná že budu psát blbosti (vzhledem ke zkušenostem co mám je to
> dost možné..), ale osobně mi přijde lepší použít knihovnu urllib2, se kterou
> mám zatím jenom dobré zkušenosti.
>
> Dál tady mam několik odkazů, které by snad mohly pomoct:
> http://aspn.activestate.com/ASPN/Cookbook/Python/Recipe/301740
> http://love-python.blogspot.com/2008/03/use-proxy-in-your-spider.html
> http://www.w3.org/People/Connolly/drafts/socksForPython.html
>
> Doufám že jsem pomohl, jestli ne tak se omlouvám za ztrátu času..
>
>
> ---------- Forwarded message ----------
> From: slush <slush na centrum.cz>
> To: Konference PyCZ <python na py.cz>
> Date: Tue, 15 Jul 2008 00:52:11 +0200 (CEST)
> Subject: [python] httplib a socks proxy
> Zdravim,
>
> badam tady nad tim dobu, zkusim se obratit na Vas.
>
> Snazim se o program, ktery bude komunikovat s http serverem. Pro me ucely
> se mi jako nejvhodnejsi (tj. dostatecne jednoducha) jevi knihovna httplib.
> Problem je, ze vyzaduji pripojeni pres SOCKS proxy, ale jak koukam na
> zdrojaky httplib, nic takoveho neumi a co hur, neumi ani prijmou jiz
> otevreny socket, po kterem by dal komunikovala.
>
> Na otevirani socketu pres SOCKS proxy mam funkcni knihovnu (SocksiPy),
> kazdopadne ta je prilis low-level, abych psal komunikaci se serverem primo v
> ni (byt je to extremni alternativa).
>
> Napada me nekolik reseni, ale ani jedno hezke. Mozna vite o necem jinem
> (treba o knihovne pro jednoduchou praci s HTTP, ktera umi pouzivat
> existujici socket).
>
> a) Naprgat to primo v socksipy. Zbytecny overhead, parsovani navratovych
> hodnot.
> b) Forknout httplib a donutit ji prijimat socket. Velmi seredne reseni, mel
> bych vlastni verzi knihovny, proste fuj.
> c) Pouzit jinou knihovnu, ale nevim jakou.
> d) Vzhledem k tomu, ze SocksiPy je *transparentni* z hlediska interface ke
> knihovne socks, NEJAK podvrhnout knihovne httplib, aby pri "import socks"
> naimportovala (a pouzila) SocksiPy. Kdyby to slo (nejakym pekne lowlevel
> python hackem), byl bych zauzlovan...
>
> Verim, ze pokud se najde reseni k d), najde se i nenulova mnozina odpurcu
> takovych hacku, ale pro muj ucel by to bylo 100% prijatelne.
>
> Diky za kazdy tip,
> Marek
>
> _______________________________________________
> Python mailing list
> Python na py.cz
> http://www.py.cz/mailman/listinfo/python
> _______________________________________________
> Python mailing list
> Python na py.cz
> http://www.py.cz/mailman/listinfo/python
>
------------- další část ---------------
HTML příloha byla odstraněna...
URL: http://www.py.cz/pipermail/python/attachments/20080715/4fb134c4/attachment.htm 


Další informace o konferenci Python