在this演练之后,我执行了以下操作:
尝试运行:
tor --hash-password mypassword
从命令行我得到
tor is not a recognized command...
我做已经安装了。
我的目标是在Python中通过torctl运行tor - 并且能够更改我的IP地址。
运行以下示例脚本:
from TorCtl import TorCtl
import urllib2
user_agent = 'Mozilla/5.0 (Windows; U; Windows NT 5.1; en-US; rv:1.9.0.7) Gecko/2009021910 Firefox/3.0.7'
headers={'User-Agent':user_agent}
def request(url):
def _set_urlproxy():
proxy_support = urllib2.ProxyHandler({"http" : "127.0.0.1:8118"})
opener = urllib2.build_opener(proxy_support)
urllib2.install_opener(opener)
_set_urlproxy()
request=urllib2.Request(url, None, headers)
return urllib2.urlopen(request).read()
def renew_connection():
conn = TorCtl.connect(controlAddr="127.0.0.1", controlPort=9051, passphrase="your_password")
conn.send_signal("NEWNYM")
conn.close()
for i in range(0, 10):
renew_connection()
print request("http://icanhazip.com/")
我得到以下回复:
C:\Users\USER>python C:\temp\py_tor.py
Failed to establish socket: [Errno 10061] No connection could be made because the target machine actively refused it
Traceback (most recent call last):
File "C:\temp\py_tor.py", line 22, in <module>
renew_connection()
File "C:\temp\py_tor.py", line 18, in renew_connection
conn.send_signal("NEWNYM")
AttributeError: 'NoneType' object has no attribute 'send_signal'
答案 0 :(得分:1)
tor --hash-password
表示它不是公认的命令,因为它不在Windows上的PATH
环境变量中。
只需将C:\tor\tor.exe
替换为C:\tor
,无论您将其安装到何处。
此外,由于您使用的是Windows,因此运行tor --hash-password password
不会显示任何输出,除非您将其输出更多,因此您应该使用:
C:\tor\tor.exe --hash-password PASSWORD | more
错误10061
是因为默认情况下Tor不会监听控制端口9051
,因此您需要编辑torrc
配置文件并添加ControlPort 9051
以便它监听控制连接,用于发出NEWNYM
信号以切换电路(更改IP)。
答案 1 :(得分:0)
快速说明:您尝试使用的图书馆TorCtl是deprecated in 2012。虽然它仍然可以使用,但您可能需要查看Stem或Txtorcon。