ip - 如何通过控制端口获取 Tor 导出节点 IP 地址?

标签 ip exit tor

我想监控正在运行的 Tor 实例的状态。

我已经能够通过控制端口的 TCP 连接获取信息。
例如。 “GETINFO 流状态”返回数据,但我无法确定当前选择的导出节点的 IP 地址。

可以简单地请求诸如 whatismyip.org 之类的东西,但这太慢并且不能很好地扩展。

那么获取 Tor 连接的导出节点 IP 地址的最佳方法是什么?

最佳答案

这是一个很好的问题!这是使用 stem 执行此操作的简短脚本...

from stem import CircStatus
from stem.control import Controller

with Controller.from_port(port = 9051) as controller:
  controller.authenticate()

  for circ in controller.get_circuits():
    if circ.status != CircStatus.BUILT:
      continue

    exit_fp, exit_nickname = circ.path[-1]

    exit_desc = controller.get_network_status(exit_fp, None)
    exit_address = exit_desc.address if exit_desc else 'unknown'

    print "Exit relay"
    print "  fingerprint: %s" % exit_fp
    print "  nickname: %s" % exit_nickname
    print "  address: %s" % exit_address
    print

谢谢你的提问。我已将此添加到 our FAQ .

关于ip - 如何通过控制端口获取 Tor 导出节点 IP 地址?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9777192/

相关文章:

python - 使用 Python 扫描主机中的每个可能端口

c - 查找服务器的IP和端口

android - Android 应用程序监听传入 TCP/IP 消息的最佳方式是什么?

java - 查找本地机器 IP 地址,无误报

identity - 结果身份改变

python - 使用 tor 和 torctl 绕过代理

haskell - Haskell 中是否有任何终止折叠?

r - 停止执行另一个代码的代码

c++ - 如何从在另一个函数中调用的函数结束程序 (C++)

python - 端口 9050 未监听 tb selenium