我想监视运行Tor实例的状态.
我已经能够通过TCP连接获取信息到控制端口.例如,"GETINFO stream-status"返回数据,但我无法确定当前所选退出节点的IP地址.
可以简单地请求像whatismyip.org这样的东西,但这太慢了,并且不能很好地扩展.
那么获得Tor连接的出口节点IP地址的最佳方法是什么?
Dam*_*ian 10
这是一个很好的问题!这是一个使用词干的简短脚本...
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
Run Code Online (Sandbox Code Playgroud)
谢谢你的提问.我已将此添加到常见问题解答中.