如何在linux上通过python + stem获取Tor中继信息?

时间:2014-03-30 17:04:43

标签: python linux tor

我正在尝试使用python' s website上的指示使用python的词库来控制ubuntu linux上的tor。但是,当我运行建议的python代码时

from stem.control import Controller

with Controller.from_port(port = 9051) as controller:
    controller.authenticate()  # provide the password here if you set one

    bytes_read = controller.get_info("traffic/read")

    bytes_written = controller.get_info("traffic/written")

    print "My Tor relay has read %s bytes and written %s." % (bytes_read, bytes_written)

我收到错误:

  

追踪(最近一次呼叫最后一次):

     

文件" littleRelay.py",第5行,在模块

中      

bytes_read = controller.get_info(" traffic / read")

     

文件" /usr/local/lib/python2.7/dist-packages/stem/control.py",第852行,在get_info中

     

提高exc

     

stem.InvalidArguments:GETINFO请求包含无法识别的关键字:traffic / read

那么如何在linux上通过python + stem获取Tor中继信息? 我认为Tor运行正常,因为我从终端开始,它说

  

[注意] Tor已成功开通电路。看起来客户端功能正常。

     

[notice] 100%自举:完成。

此外,当我运行上面的python代码时,终端说

  

[通知]新的控制连接已打开。

P.S。我也试过Windows PC上的代码,它的工作原理。我现在真的很困惑。

2 个答案:

答案 0 :(得分:3)

该错误表明Tor不支持'GETINFO流量/读取'查询。这很奇怪 - 这是我在2011年加入Tor的一项功能。也许你的Tor副本非常非常过时了?

答案 1 :(得分:0)

问题解决了!谢谢达米安!

我在Ubuntu上卸载了Tor,并按照详细指南here再次安装Tor。现在Tor使用python代码。

我不确定问题究竟是怎么产生的,但我认为问题与通过天真地使用

在Ubuntu上安装Tor有关
  

sudo apt-get install tor