簡體   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