ICode9

精准搜索请尝试: 精确搜索
首页 > 编程语言> 文章详细

python-扭曲的Web客户端可以通过SOCKS代理发出请求吗?

2019-10-30 23:55:10  阅读:273  来源: 互联网

标签:tor proxy twisted socks python


我正在编写一个使用twisted.web.client.Agent发出https请求的python程序.我想有选择地通过Tor发出这些请求,如果将socks5代理设置为127.0.0.1:9050,我应该能够做到.

我找不到有关使用袜子代理的任何扭曲文档,但可以找到有关使用HTTP代理的信息:https://twistedmatrix.com/documents/current/web/howto/client.html#auto9

我还在另一个项目ooni-probe中找到了一些代码,这些代码似乎正在通过袜子代理发出扭曲的Web请求.这是代理商:

https://gitweb.torproject.org/ooni-probe.git/blob/HEAD:/ooni/templates/httpt.py#l65

self.control_agent = Agent(reactor, sockshost="127.0.0.1",
                           socksport=config.tor.socks_port)

但是该代理实际上是ooni.utils.txagentwithsocks.Agent,继承自twisted.web.client.Agent:

https://gitweb.torproject.org/ooni-probe.git/blob/HEAD:/ooni/utils/txagentwithsocks.py#l157

那里的请求方法看起来像这样:

def request(self, method, uri, headers=None, bodyProducer=None):
    if (uri.startswith('shttp') or uri.startswith('httpo')) and not HTTPConnectionPool:
        log.err("Requests over SOCKS are supported only with versions of Twisted >= 12.1.0")
        raise UnsupportedTwistedVersion
    return client.Agent.request(self, method, uri, headers, bodyProducer)

似乎Twisted> = 12.1.0支持袜子代理,对吧?有谁知道如何通过请求发出请求,而无需编写twisted.web.client.Agent的子类?

解决方法:

Twisted中的twisted.web.client.Agent API不支持SOCKS.这是一项计划中但尚未实现的功能.

如果您想加快进度,可以鼓励OONI项目在上游促进其实施.

标签:tor,proxy,twisted,socks,python
来源: https://codeday.me/bug/20191030/1971797.html

本站声明: 1. iCode9 技术分享网(下文简称本站)提供的所有内容,仅供技术学习、探讨和分享;
2. 关于本站的所有留言、评论、转载及引用,纯属内容发起人的个人观点,与本站观点和立场无关;
3. 关于本站的所有言论和文字,纯属内容发起人的个人观点,与本站观点和立场无关;
4. 本站文章均是网友提供,不完全保证技术分享内容的完整性、准确性、时效性、风险性和版权归属;如您发现该文章侵犯了您的权益,可联系我们第一时间进行删除;
5. 本站为非盈利性的个人网站,所有内容不会用来进行牟利,也不会利用任何形式的广告来间接获益,纯粹是为了广大技术爱好者提供技术内容和技术思想的分享性交流网站。

专注分享技术,共同学习,共同进步。侵权联系[81616952@qq.com]

Copyright (C)ICode9.com, All Rights Reserved.

ICode9版权所有