在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
函数。我们将结果打印到控制台。