python

在Python里如何定时执行ping命令

小樊
82
2024-12-07 13:34:40
栏目: 编程语言

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

import subprocess
import time

def ping(host, interval):
    while True:
        try:
            # 在Windows系统中,使用"-n"参数,而在Linux和macOS系统中,使用"-c"参数
            command = ["ping", "-c", "1", host] if platform.system().lower() != "windows" else ["ping", "-n", "1", host]
            output = subprocess.check_output(command, stderr=subprocess.STDOUT, universal_newlines=True)
            print(f"{host} is up: {output.strip()}")
        except subprocess.CalledProcessError as e:
            print(f"{host} is down: {e.output.strip()}")
        time.sleep(interval)

if __name__ == "__main__":
    host = input("Enter the host to ping: ")
    interval = float(input("Enter the interval in seconds: "))
    ping(host, interval)

这个脚本定义了一个名为ping的函数,它接受一个主机名和一个时间间隔(以秒为单位)。函数会无限循环地执行ping命令,并在每次执行后等待指定的时间间隔。如果主机在线,它将输出ping成功的信息;如果主机离线,它将输出ping失败的信息。

请注意,这个脚本需要在具有相应权限的环境中运行,以便能够执行ping命令。在某些操作系统中,你可能需要以管理员身份运行脚本。

0
看了该问题的人还看了