python练习贴02 Ping服务器(监视)

能有今天的问题, 首先要感谢我们的网线.

 

项目组搞了9台机器搞了个局域网进行测试,

因为这是一个临时的任务, 所以我们没有宽敞的场地,

又因为我们的网线很多都没有卡槽的,

所以网线经常被踢掉.

 

于是拿python写个脚本,  循环ping这些机器, 看通不通.

代码在下面:

 

 

__author__="wjason"
__date__ ="$2009-3-18 13:22:58$"

import os
import wx
import time

from wxPython.wx import *
class MyApp(wxApp):
    def OnInit(self):
        frame = wxFrame(NULL, -1, "Hello wxPython world")
        #frame.Show(true)
        frame.Show(false)
        self.SetTopWindow(frame)
        return true


def test_vp(ip):
    lines = os.popen('ping '+ str(ip) + '  -n 1').readlines()
    result = [l for l in lines if (l.find('Lost = 0') > 0)]
    if len(result)==0:
        dlg = wx.MessageDialog(None, 'can not connect: '+ ip, "ButtonPanel wxPython Demo",
                               wx.OK | wx.ICON_INFORMATION)
        dlg.ShowModal()

    else:
        print ip + " is ok"
    #print ''.join(result)

def loopMonitor():
    while 1:
        test_vp('192.168.0.10')
        test_vp('192.168.1.10')
        test_vp('192.168.2.10')
        test_vp('192.168.3.10')
        test_vp('192.168.4.10')
        test_vp('192.168.5.10')
        test_vp('192.168.6.10')
        test_vp('192.168.7.10')
        #test NG
        #test_vp('192.168.222.10')

        time.sleep(60)

if "__main__" == "__main__":
    print "started";
    firstapp = MyApp(0)
    #firstapp.MainLoop()

    loopMonitor()
    print "end";
 

总结下学到的东西.

1. time模块的sleep方法

2. 用wxPython弹出一个对话框.

    实现是实现了,  但要想使用wxPython, 你就必须要创建一个wxApp. 对于我要弹出一个对话框这样的需求, 有点麻烦.

    所以我也有了下面这个问题:

    使用python弹个对话框, 有简单的办法吗?

 

 

你可能感兴趣的:(python,脚本,OS,wxPython)