gpt4 book ai didi

python - 如何在 stem 中更改我的 tor 进程的端点?

转载 作者:太空狗 更新时间:2023-10-29 23:59:38 25 4
gpt4 key购买 nike

我正在使用 stem 来控制使用 stem.process.launch_tor_with_config 创建的 tor 节点。我还创建了一个在上述进程的控制端口上运行的 stem.control.Controller

如何更改导出节点?我查看了 stem.controller.Controller.new_circuit,但这似乎改变了中间节点,保留了端点。

有谁知道如何做到这一点?

谢谢!

编辑:

所以我想我可能误解了一些基本的东西,但我似乎无法理解它。我尝试调用 Controller.get_circuits() 并找到了 CircuitEvent 对象的列表。这是否意味着单个进程可以处理多个电路?如果是这样,我该如何选择一个使用?

请注意,我通过 Privoxy 将 HTTP 请求定向到 Privoxy,而 Privoxy 又将其转发到 tor 进程的 SOCKS 端口。

编辑 2:

我找到了一些有用的东西,但我不知道它是如何工作的,这让我很担心。我很乐意将答案授予能够满足以下任一条件的任何人:

  1. 解释为什么我的方法有效
  2. 展示更好的方法并解释其工作原理

这是我所做的:

for circuit in controller.get_circuits():
controller.close_circuit(circuit.id)

就是这样。外部 IP 已更改,所以我知道我做了某事,但如果我确切知道是什么,见鬼去吧。

最佳答案

您有几个选项可以使用特定导出...

  • 在您的 torrc 中设置 ExitNodes 属性。这体现在......

https://stem.torproject.org/tutorials/to_russia_with_love.html

  • 在您当前的电路之一上调用 extend_circuit() 到所需的端点...

https://stem.torproject.org/api/control.html#stem.control.Controller.extend_circuit

如果您要问的问题真的是“我如何获得新的 IP 地址”,那么我们更不愿意回答这个问题。部分原因是它主要用于规避禁令或 SEO,部分原因是重复创建电路会给 Tor 网络带来高负载。

至于为什么当您调用 close_circuit() 时您的 IP 似乎发生了变化,那是因为 Tor 然后需要代表您为以下请求重新创建一个新电路。无法保证 IP 是新的,这样做会涉及相当多的流量,以通过三个新跃点来压缩您的连接。

我不经常使用 StackOverflow,所以如果您对针对 Tor 编写脚本有进一步的疑问,那么我建议您使用 tor-dev@ 电子邮件列表...

https://lists.torproject.org/cgi-bin/mailman/listinfo/tor-dev/

干杯! -Damian(stem 的作者)

关于python - 如何在 stem 中更改我的 tor 进程的端点?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17013707/

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