這裏使用的是最簡易的方式,使用python的子進程管理模塊,調用系統的ping命令,代碼如下:
import subprocess
import re
p = subprocess.Popen(["ping.exe", 'google.com'],
stdin = subprocess.PIPE,
stdout = subprocess.PIPE,
stderr = subprocess.PIPE,
shell = True)
out = p.stdout.read()
regex = re.compile("Minimum = (\d+)ms, Maximum = (\d+)ms, Average = (\d+)ms", re.IGNORECASE)
print regex.findall(out)
import re
p = subprocess.Popen(["ping.exe", 'google.com'],
stdin = subprocess.PIPE,
stdout = subprocess.PIPE,
stderr = subprocess.PIPE,
shell = True)
out = p.stdout.read()
regex = re.compile("Minimum = (\d+)ms, Maximum = (\d+)ms, Average = (\d+)ms", re.IGNORECASE)
print regex.findall(out)
ping的結果用正則取出來。
該代碼在xp+python2.5上測試通過,如果是linux系統,需要修改正則,因爲linux上的ping的返回結果和windows的不太一樣。該短代碼的缺點是調用的時候,由於要等待ping命令返回,所以界面會假死,可以考慮開單獨的線程處理。