gpt4 book ai didi

python - Paramiko - 如何判断 SSHClient 当前连接到哪台主机?

转载 作者:行者123 更新时间:2023-11-30 23:01:06 29 4
gpt4 key购买 nike

我有一个脚本,可以循环十几个主机并在每个主机中执行多个功能。这些函数将 SSHClient() 作为参数,然后对其执行命令。

我可以简单地在 SSHClient() 上设置一些属性,但在这样做之前,是否已经有一种方法可以从 SSHClient() 的实例确定当前正在连接到哪个主机?

for host in hosts:
ssh = paramiko.SSHClient()
ssh.set_missing_host_key_policy(paramiko.AutoAddPolicy())
ssh.connect(host, username=USERNAME)
f1(ssh)
f2(ssh)
...

最佳答案

使用客户端的 ssh 变量,正如您所做的那样,有:

ssh.get_transport().getpeername()

这将返回一个元组('ip地址',端口号)

这样就够了吗?查看 paramiko/client.py 的源代码,它似乎没有记录 connect() 的主机名参数的值,它使用 socket.getaddrinfo 查找地址 然后将结果传递给传输,这就是 getpeername() 所要求的。

关于python - Paramiko - 如何判断 SSHClient 当前连接到哪台主机?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/35025151/

29 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com