python

如何用Python批量执行ping命令

小樊
82
2024-12-07 13:29:39
栏目: 编程语言

在Python中,您可以使用subprocess模块来批量执行ping命令

import subprocess

def ping_host(host, timeout=1, count=4):
    try:
        output = subprocess.check_output(['ping', '-c', str(count), host], stderr=subprocess.STDOUT, timeout=timeout)
        return output.decode('utf-8')
    except subprocess.TimeoutExpired:
        return f"{host} timed out"
    except subprocess.CalledProcessError as e:
        return f"Error pinging {host}: {e.output.decode('utf-8')}"

hosts = ['www.google.com', 'www.example.com', 'nonexistentwebsite.xyz']

for host in hosts:
    result = ping_host(host)
    print(f"{host}: {result}")

在这个示例中,我们定义了一个名为ping_host的函数,它接受一个主机名(或IP地址)以及可选的超时和ping次数参数。然后,我们使用subprocess.check_output()函数执行ping命令,并捕获输出。最后,我们将输出解码为UTF-8字符串并返回。

在主程序中,我们创建了一个包含要ping的主机名的列表,然后遍历该列表并对每个主机调用ping_host函数。我们将结果打印到控制台。

0
看了该问题的人还看了