我正在尝试通过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:常规SOCKS服务器故障”。我认为这可能是配置问题-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,但对我来说,这导致我在调整“torrc-defaults”时无法加载Tor浏览器),而是收到错误消息“[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,但不幸的是,之前和之后的IP都是一样的。
我在这里很迷失-任何支持将不胜感激!
谢谢。
最佳答案
获取您的哈希密码:
tor --hash-password my_password
修改配置文件:
sudo gedit /etc/tor/torrc
添加这些行
ControlPort 9051
HashedControlPassword 16:E600ADC1B52C80BB6022A0E999A7734571A451EB6AE50FED489B72E3DF
CookieAuthentication 1
注意:-HashedControlPassword是从第一个命令生成的
引用此link
我没有尝试过它,因为我使用的是Mac,但是我希望这对配置有所帮助
关于python - Tor,阀杆和 socket -使用TOR更改身份,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/28637436/