python

python怎么执行ping命令

小亿
82
2024-12-07 05:06:27
栏目: 编程语言

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

import subprocess

def ping(host, timeout=2):
    try:
        # 在Windows系统中,使用'-n'参数,而在Linux和macOS系统中,使用'-c'参数
        command = ['ping', '-c', '1', host] if platform.system().lower() != 'windows' else ['ping', '-n', '1', host]
        
        # 使用subprocess.run()执行ping命令,并捕获输出结果
        result = subprocess.run(command, stdout=subprocess.PIPE, stderr=subprocess.PIPE, text=True, timeout=timeout)
        
        # 检查返回码是否为0(表示成功)
        if result.returncode == 0:
            print(f"{host} is reachable.")
        else:
            print(f"{host} is not reachable.")
    except subprocess.TimeoutExpired:
        print(f"{host} did not respond within the timeout period.")
    except Exception as e:
        print(f"An error occurred: {e}")

# 用法示例:
ping("example.com")

请注意,这个示例仅适用于Unix-like系统(Linux、macOS)。如果你正在使用Windows系统,你需要将command数组中的['ping', '-c', '1', host]更改为['ping', '-n', '1', host]

0
看了该问题的人还看了