Python, реализующий поддержку прокси для приложения на основе сокетов (не urllib2) - PullRequest
3 голосов
/ 15 апреля 2010

Я немного озадачен: у меня есть простая программа-мессенджер (чистый python, сокеты), и я хотел добавить поддержку прокси (http / s, socks), однако я немного запутался, как это сделать. Я предполагаю, что соединение на уровне сокета будет установлено с прокси-сервером, и в этот момент заголовки должны содержать CONNECT + IP-адрес назначения (сервера чата) и аутентификацию (если прокси-сервер требует этого), однако остальное немного за мной. Как обрабатывается последующее соединение, в частности чтение / запись и т. Д ...

Существуют ли руководства по реализации поддержки прокси для программирования на основе сокетов (tcp) в Python?

Спасибо

Ответы [ 3 ]

3 голосов
/ 26 апреля 2010

Может быть, использовать что-то вроде SocksiPy , который делает все детали протокола за вас и позволит вам подключиться через прокси-сервер SOCKS, как без него?

1 голос
/ 26 апреля 2010

Это довольно просто - после отправки HTTP-запроса: CONNECT example.com:1234 HTTP/1.0\r\nHost: example.com:1234\r\n<additional headers incl. authentication>\r\n\r\n сервер отвечает HTTP/1.0 200 Connection established\r\n\r\n, а затем (после окончания двойной строки) вы можете общаться так же, как если бы вы общались с портом 1234 example.com без прокси (как я понимаю, у вас уже есть коммуникационная часть клиент-сервер).

0 голосов
/ 26 апреля 2010

Взгляните на stunnel .

Stunnel может позволить вам обезопасить демоны и протоколы без поддержки SSL (например, POP, IMAP, LDAP и т. д.), имея Stunnel обеспечивает шифрование, не требует никаких изменений для демона код

...