我正在使用它stem来控制用它创建的tor节点stem.process.launch_tor_with_config.我还创建了一个stem.control.Controller在上述进程的控制端口上运行的程序.
如何更改退出节点?我看了一下stem.controller.Controller.new_circuit,但这似乎改变了中间节点,保留了端点.
有谁知道如何做到这一点?
谢谢!
编辑:
所以我认为我可能误解了一些基本的东西,但我似乎无法绕过它.我试着打电话Controller.get_circuits()找到一个CircuitEvent对象列表.这是否意味着单个进程可以处理多个电路?如果是这样,我该如何选择使用?
请注意,我正在通过Privoxy引导HTTP请求,而Privoxy又将其转发到tor进程的SOCKS端口.
编辑2:
我发现了一些有效的东西,但我不知道它是如何工作的,这让我很担心.我很乐意为任何能够:
这就是我所做的:
for circuit in controller.get_circuits():
controller.close_circuit(circuit.id)
Run Code Online (Sandbox Code Playgroud)
它就是.外部知识产权发生了变化,所以我知道我已经做了一些事情,但如果我确切知道究竟是什么的话.
您有几个选项可以使用特定的退出...
https://stem.torproject.org/tutorials/to_russia_with_love.html
https://stem.torproject.org/api/control.html#stem.control.Controller.extend_circuit
如果您要问的问题是"我如何获得新的IP地址",那么这是一个我们更不愿意回答的问题.部分是因为它主要用于禁止逃避或搜索引擎优化,部分原因是重复的电路创建给Tor网络带来了很大的负担.
至于为什么在调用close_circuit()时你的IP似乎发生了变化,那是因为Tor需要代表你为以下请求重新创建一个新电路.无法保证IP是新的,这样做需要相当多的流量来通过三个新的跳跃来连接你的连接.
我不经常在StackOverflow上,所以如果你有关于Tor的脚本的进一步问题,那么我会建议tor-dev @ email列表......
https://lists.torproject.org/cgi-bin/mailman/listinfo/tor-dev/
干杯! -Damian(干的作者)