python

Python中使用ping命令检测网络

小樊
87
2024-12-07 13:21:39
栏目: 编程语言

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

import subprocess

def ping(host, timeout=2, count=4):
    # 构建ping命令
    command = ['ping', '-c', str(count), host]
    
    try:
        # 执行ping命令
        output = subprocess.check_output(command, stderr=subprocess.STDOUT, timeout=timeout)
        
        # 将输出转换为字符串并返回
        return output.decode('utf-8')
    except subprocess.TimeoutExpired:
        return "请求超时"
    except subprocess.CalledProcessError as e:
        return f"请求失败,错误代码:{e.returncode}\n错误信息:{e.output.decode('utf-8')}"

# 使用示例
host = "www.example.com"
result = ping(host)
print(result)

这个示例中的ping函数接受一个主机名(或IP地址)作为参数,以及可选的超时(默认为2秒)和ping次数(默认为4次)。函数使用subprocess.check_output()执行ping命令,并捕获输出。如果请求成功,函数将返回ping结果的字符串表示;如果请求超时或失败,函数将返回相应的错误信息。

0
看了该问题的人还看了