试图设置和使用torctl但有问题

时间:2015-11-13 21:03:03

标签: python tor pytorctl

this演练之后,我执行了以下操作:

  1. 安装Tor(手动完成,而不是通过win-get)
  2. 已安装的privoxy
  3. 尝试运行:

    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'
    

2 个答案:

答案 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。虽然它仍然可以使用,但您可能需要查看StemTxtorcon