2010-04-15 2 views
2

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

Есть ли руководства по поддержке поддержки прокси для программирования на основе сокетов (tcp) в Python?

Спасибо

ответ

2

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

+0

Это хорошо работает. Мне удалось интегрировать все, а код SocksiPy точно показывает, что происходит во время туннелирования HTTP/SOCKS. Я очень удивлен, что не нашел его раньше, спасибо! –

0

Посмотрите на stunnel.

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

1

Это довольно просто - после отправки 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, а затем (после окончания двойной линии) вы можете общаться так же, как вы могли бы общаться с example.com-портом 1234 без прокси-сервера (как я понимаю, у вас уже есть t его клиент-серверная часть связи).

+0

Спасибо за этот ответ, очень ценим. Я должен был принять предыдущий плакат, потому что мне удалось легко интегрировать его решение, и код даже демонстрирует обработку SOCKS4/5, помимо туннелирования HTTP. –

 Смежные вопросы

  • Нет связанных вопросов^_^