3

我有点难过:我有一个简单的信使客户端程序(纯 python、套接字),我想添加代理支持(http/s、socks),但是我对如何去做有点困惑。我假设套接字级别的连接将完成到代理服务器,此时标头应包含 CONNECT + 目标 IP(聊天服务器的)和身份验证(如果代理需要),但其余的是有点超出我。后续连接是如何处理的,特别是读/写等...

是否有关于 Python 中基于套接字(tcp)编程的代理支持实现的指南?

谢谢

4

3 回答 3

3

也许使用像SocksiPy之类的东西,它会为您处理所有协议细节,并让您通过 SOCKS 代理进行连接,就像没有它一样?

于 2010-04-26T06:32:45.987 回答
2

这很简单 - 在您发送 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 进行通信一样进行通信(据我所知,您已经拥有客户端-服务器通信部分完成)。

于 2010-04-26T15:16:40.697 回答
0

看看stunnel

Stunnel 可以让您通过让 Stunnel 提供加密来保护不支持 SSL 的守护程序和协议(如 POP、IMAP、LDAP 等),而无需更改守护程序的代码

于 2010-04-26T06:54:37.133 回答