跳至正文

Windows下快速判断能不能ping通

内容纲要

原理如下:

ping 10.10.10.4 -n 1 -w 500

参数-n 1只ping一次,参数-w 500设置500毫秒超时返回。

封装的Python代码如下:

def is_pingable(ip: str = "10.10.10.4") -> bool:
    import subprocess
    cmd = f"ping {ip}  -n 1 -w 500"
    cp = subprocess.run(cmd, shell=True, capture_output=True)
    return cp.returncode == 0

这里有个需要注意的细节,如果写一个死循环不停得检测,有可能会出现明明ping不通但是返回ping通的情况,怀疑是间隔太短,两次的ping互相影响造成的,加一个delay就正常了。

标签: