gpt4 book ai didi

python - Tor、Stem 和套接字 - 使用 TOR 改变身份

转载 作者:行者123 更新时间:2023-11-28 16:34:17 33 4
gpt4 key购买 nike

我正在尝试通过 python 运行 Tor。我的目标是能够在我选择的时间不时切换导出或以其他方式更改我的 IP。我已经学习了几个教程并遇到了几个不同的错误。

此代码打印我的 IP 地址

import requests
r = requests.get('http://icanhazip.com/')
r.content
# returns my regular IP

我已经下载并“安装”了 Tor 浏览器(尽管它似乎是从 .exe 运行的)。当它运行时,我可以使用以下代码返回我的 Tor IP,它似乎每 10 分钟左右更改一次,所以到目前为止一切似乎都在工作

import socks
import socket
socks.set_default_proxy(socks.SOCKS5, "127.0.0.1", 9150)
socket.socket = socks.socksocket

r = requests.get('http://icanhazip.com/')
print r.content
# Returns a different IP

现在,我找到了说明 here关于如何以编程方式请求新身份,但这是事情开始出错的地方。我运行以下代码

from stem import Signal
from stem.control import Controller

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

我在创建 Controller 的行收到错误“SOCKS5Error: 0x01: General SOCKS server failure”。我认为这可能是配置问题 - instructions say除了其他内容外,应该有一个名为“torrc”的配置文件,其中包含端口号。

最终,在目录 C:\Users\..myname..\Desktop\Tor Browser\Browser\TorBrowser\Data\Tor 中我找到了三个文件,一个“torrc”、一个“torrc-defaults”和一个'torrc.orig.1'。我的 'torrc-defaults' 看起来类似于文档中显示的 'torrc',我的 'torrc.orig.1' 是空的,我的 'torrc' 有两行注释,如下所示,之后有更多设置但没有端口设置

# This file was generated by Tor; if you edit it, comments will not be preserved
# The old torrc file was renamed to torrc.orig.1 or similar, and Tor will ignore it
...

我已尝试确保“torrc-defaults”中列出的两个端口与开头的 socks 语句和后面的 Controller 语句中的端口相匹配。当它们分别为 9150 和 9151 时,我得到上面列出的一般 SOCKS 服务器故障。

当我尝试使用错误的端口运行 Controller 时(在本例中,其他帖子推荐的 9051 但对我来说导致 Tor 浏览器在我调整“torrc-defaults”时无法加载)然后我得到错误消息“[Errno 10061] 由于目标机器主动拒绝,无法建立连接”

最后,当我在后台运行 Tor 浏览器但没有首先运行 SOCKS 语句的情况下运行 Controller 时,我反而收到了很多警告文本,最后是一个错误,如下面的部分所示:

...
...
250 __OwningControllerProcess
DEBUG:stem:GETCONF __owningcontrollerprocess (runtime: 0.0010)
TRACE:stem:Sent to tor:
SIGNAL NEWNYM
TRACE:stem:Received from tor:
250 OK
TRACE:stem:Received from tor:
650 SIGNAL NEWNYM
TRACE:stem:Sent to tor:
QUIT
TRACE:stem:Received from tor:
250 closing connection
INFO:stem:Error while receiving a control message (SocketClosed): empty socket content

起初我认为这看起来很有希望 - 我在新用户请求之前和之后都像这样快速检查了一行

print requests.get('http://icanhazip.com/').content

它打印了 IP,但不幸的是,前后都是一样的。

我在这里很迷路 - 任何支持将不胜感激!

谢谢。

最佳答案

获取您的散列密码:

tor --hash-password my_password

修改配置文件:

sudo gedit /etc/tor/torrc

添加这些行

ControlPort 9051 
HashedControlPassword 16:E600ADC1B52C80BB6022A0E999A7734571A451EB6AE50FED489B72E3DF
CookieAuthentication 1

注意:- HashedControlPassword 是从第一个命令生成的

引用这个link

我没有自己尝试过,因为我使用的是mac,但我希望这对配置有帮助

关于python - Tor、Stem 和套接字 - 使用 TOR 改变身份,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/28637436/

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