内容纲要
原理如下:
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就正常了。