Python / Paramiko如何解释ping结果。

时间:2017-06-22 14:01:11

标签: python ssh ping paramiko

这是我的代码

ssh = paramiko.SSHClient()
ssh.set_missing_host_key_policy(paramiko.AutoAddPolicy())
ssh.connect('host', username='usrname', password='pwd)

stdin, stdout, stderr = ssh.exec_command("vmkping ip")
output = stdout.readlines()

我希望能够分辨出收到的数据包的百分比。我还想告诉你ping时是否有错误。输出变量仅将结果存储为字符串列表。

1 个答案:

答案 0 :(得分:0)

您可以使用re和string函数处理输出并获取所需的输出。

指定ping命令应尝试的ping次数(这里我提到了一个静态值):

command = "ping -c 5 <ip>"
ssh_stdin, ssh_stdout, ssh_stderr = ssh_connection.exec_command(command)

output = ssh_stdout.read()
error = ssh_stderr.read()

list_output = re.split(',', output)
packet_loss = re.split('packet loss', list_output[2])
print packet_loss[0]

要处理所有类型错误的输出,您可以执行以下操作:

if str(output).find('5 received') > 0:
   print "5 packets received"
elif str(output).find('0 received') > 0:
   print "0 packet received"

同样,您可以处理输出并找出收到的数据包的百分比。