繁体   English   中英

通过Tor在Python中使用Stem包时是否可以加快IP地址的更改?

[英]Is it possible to speed up the changing of IP addresses when using theStem package in Python via Tor?

我目前正在使用以下设置来更改我在 Mac OS X 中的 IP 地址:

from stem import Signal
from stem.control import Controller

with Controller.from_port(port = 9051) as controller:
    controller.authenticate()
    controller.signal(Signal.NEWNYM)

headers = {
    'User-Agent': 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10.13; rv:61.0) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/42.0.2311.135 Safari/537.36 Edge/12.1'
}

proxies = {
    "http": "http://127.0.0.1:8118"
}

r_ip = requests.get("http://icanhazip.com", proxies=proxies, headers=headers_tor)
print(r_ip.text)

我首先在我的命令行中运行 Tor,然后执行上面的。 我注意到 IP 地址不会立即更改,而是需要几秒钟才能运行上面的代码块以生成新的 IP 地址。 此外,在我运行 Tor 的终端页面上,它输出如下消息:

Aug 25 04:13:53.000 [notice] Rate limiting NEWNYM request: delaying by 7 second(s)

有没有办法在没有延迟的情况下更改 IP 地址?

根据Tor控制规范NEWNYM信号指示您的Tor客户打开新电路。 结果,您(很可能)将获得一个电路,该电路具有比以前不同的出口节点,因此具有不同的IP地址。

这总是需要一些时间,您无法真正加快电路构造本身。 您可以做的是将“ CircuitBuildTimeout”(请参阅Tor手册 )更改为默认值60秒以外的其他值,因此,如果花费的时间超过指定的时间,tor将尝试构建其他电路。 请注意,这可能会引起隐私问题,因为您更喜欢快速路由器。

电路结构总是给Tor网络带来很大的负载。 要注意的是,“ tor可以对NEWNYM信号进行速率限制”( tor控制规范的3.7节 )。 因此,您不能经常建立电路。 除了更改源代码以禁用此机制之外,没有任何方法可以规避此预期的限制。

如果需要固定数量的不同IP地址,则可以使用不同的端口多次指定“ HTTPTunnelPort”配置选项。 为此,您需要在torrc文件中添加以下行(对于Linux,通常在/etc/tor/torrc中。对于Mac,该文件似乎更难找到,如此处所述 ):

HTTPTunnelPort 8118
HTTPTunnelPort 8119 

等等,然后,tor将在启动时为每个端口打开一个电路,因此这部分时间更长。 您的请求将具有不同的IP地址,具体取决于您发送它们的端口。 例如: port 8118 -> 5.5.5.5 port 8119 -> 4.4.4.4. 要在地址之间切换,请在python脚本中更改代理配置中的端口。

这对于在固定数量的地址之间切换非常有用。 但是,只有在等待电路构建时才改变。 对于在每次请求后进行更改,使用NEWNYM似乎更好。

另外,您可以使用stem的get_newnym_waitis_newnym_available查看tor是否允许您构建新电路,如果不允许,则需要等待多长时间。

实际上,当我使用 termux 为我忘记的社交媒体查找密码时,我遇到了同样的问题。 我先使用 tor,然后使用 6k 密码列表。 我不知道如何处理这个速率限制。 它一直在推迟一晚只测试五个到十个密码。 这太令人沮丧了。 当我早上醒来时,我看着我的笔记本电脑,他们仍然检查了同一个该死的密码。 *尖叫 *扔笔记本电脑。 这可以在termux上使用吗?

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM