【问题标题】:Python - Controlling TorPython - 控制 Tor
【发布时间】:2017-08-03 11:27:05
【问题描述】:

我正在尝试用 Python 控制 Tor。我在 stackoverflow 上阅读了其他几个关于这个主题的问题,但没有一个回答这个问题。

我正在寻找一种方法,以便在命令运行时为您提供“新身份”,即新 IP 地址。我四处搜索,发现 TorCtl 模块是一种控制 tor 的方法,但找不到获得新身份的方法。这是我到目前为止至少连接到 tor 的内容,但无法更进一步。

from TorCtl import TorCtl

conn = TorCtl.connect(controlAddr="127.0.0.1", controlPort=9051, passphrase="123")

对此的任何帮助表示赞赏,如果有其他模块比 TorCtl 更好,那也很棒!谢谢!

【问题讨论】:

    标签: python tor


    【解决方案1】:

    好吧,不幸的是,我设法找到了一个与我想要的完全相同的 PHP 脚本,并在它的帮助下将它转换为在 TorCtl 中工作。这就是其他人在未来需要它时的样子!

    from TorCtl import TorCtl
    
    conn = TorCtl.connect(controlAddr="127.0.0.1", controlPort=9051, passphrase="123")
    
    TorCtl.Connection.send_signal(conn, "NEWNYM")
    

    【讨论】:

      【解决方案2】:

      你可以在python中使用类似的代码:

      def renewTorIdentity(self, passAuth):
          try:
              s = socket.socket()
              s.connect(('localhost', 9051))
              s.send('AUTHENTICATE "{0}"\r\n'.format(passAuth))
              resp = s.recv(1024)
      
              if resp.startswith('250'):
                  s.send("signal NEWNYM\r\n")
                  resp = s.recv(1024)
      
                  if resp.startswith('250'):
                      print "Identity renewed"
                  else:
                      print "response 2:", resp
      
              else:
                  print "response 1:", resp
      
          except Exception as e:
              print "Can't renew identity: ", e 
      

      您可以查看this post for a mini-tutorial

      【讨论】:

        【解决方案3】:

        显然 stem 包效果更好。您可以在您的计算机上安装 tor 并使其在终端中运行。然后运行以下程序:

        from stem import Signal
        from stem.control import Controller
        
        with Controller.from_port(port = 9051) as controller:
          controller.authenticate()
          controller.signal(Signal.NEWNYM)
        

        stem是tor.org开发的官方包,可以看他们的documentation

        【讨论】:

          猜你喜欢
          • 2013-12-16
          • 2017-11-09
          • 1970-01-01
          • 2011-09-11
          • 2011-07-06
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 2021-05-15
          相关资源
          最近更新 更多