gpt4 book ai didi

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

转载 作者:太空宇宙 更新时间:2023-11-03 15:20:06 26 4
gpt4 key购买 nike

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

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

我还在另一个项目 ooni-probe 中发现了一些代码,它们似乎通过 socks 代理发出扭曲的网络请求。这是代理:

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)

但是那个Agent其实是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 支持 socks 代理,对吧?有谁知道如何在不编写 twisted.web.client.Agent 的子类的情况下通过它们发出请求?

最佳答案

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

如果您想加快这一步,您可以鼓励 OONI 项目在上游贡献他们的实现。

关于python - 扭曲的 Web 客户端可以通过 SOCKS 代理发出请求吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16329075/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com