使用方法:
python pingcheck.py <目标>
比如
python pingcheck.py 8.8.8.8
简单的小脚本…跨平台…分别用了pynotify和pywin32库来执行通知, 因此需要安装相应的库才可以使用.
用ping检查网络通断,并且在通断情况改变时提示用户…
截图:
下载地址:
脚本(任意平台): http://movieinfofetch.googlecode.com/files/pingcheck.py
Windows下的已编译版本(需要VC2005运行库): http://movieinfofetch.googlecode.com/files/pingcheck.exe
#!/usr/bin/python
import subprocess,platform,sys
if len(sys.argv)<2:
print "Usage: pingcheck "
sys.exit(1)
target=sys.argv[1]
if platform.system()[0]!="W":
arg=['ping','-n',target]
import pynotify
notify=lambda a,b:pynotify.Notification(a,b).show()
else:
arg=['ping','-t',target]
import win32com.client
axWshShell=win32com.client.Dispatch("WScript.Shell")
notify=lambda a,b:axWshShell.Popup(b,5,a,0)
title="Ping "+target
p=subprocess.Popen(args=arg,bufsize=0,stdout=subprocess.PIPE,stderr=subprocess.STDOUT)
s=''
status=True
while p.poll()==None:
a=p.stdout.read(1)
if a!='\n':
s+=a
else:
print s
s=s.strip()
if target not in s and s!='':
if 'time=' in s and not status:
notify(title,"Server is up!")
status=True
elif 'time=' not in s and status:
notify(title,"Server is down!")
status=False
s=''