Win32_PingStatus python sample code
The foundations for Manageability in Windows is Windows Management Instrumentation (WMI; formerly WBEM) and WMI extensions for Windows Driver Model (WDM).
ActiveXperts Network Monitor provides the ability to build monitor check routines based on WMI. ActiveXperts has collected more than a hundred WMI samples. You can use these samples as a base for new check routines you can write yourself. The Win32_PingStatus WMI class can be used in ActiveXperts Network Monitor to monitor your servers.
Sample Code
import win32com.client def WMIDateStringToDate(dtmDate): strDateTime = "" if (dtmDate[4] == 0): strDateTime = dtmDate[5] + '/' else: strDateTime = dtmDate[4] + dtmDate[5] + '/' if (dtmDate[6] == 0): strDateTime = strDateTime + dtmDate[7] + '/' else: strDateTime = strDateTime + dtmDate[6] + dtmDate[7] + '/' strDateTime = strDateTime + dtmDate[0] + dtmDate[1] + dtmDate[2] + dtmDate[3] + " " + dtmDate[8] + dtmDate[9] + ":" + dtmDate[10] + dtmDate[11] +':' + dtmDate[12] + dtmDate[13] return strDateTime strComputer = "." objWMIService = win32com.client.Dispatch("WbemScripting.SWbemLocator") objSWbemServices = objWMIService.ConnectServer(strComputer,"root\cimv2") colItems = objSWbemServices.ExecQuery("SELECT * FROM Win32_PingStatus") for objItem in colItems: if objItem.Address != None: print "Address:" + ` objItem.Address` if objItem.BufferSize != None: print "BufferSize:" + ` objItem.BufferSize` if objItem.NoFragmentation != None: print "NoFragmentation:" + ` objItem.NoFragmentation` if objItem.PrimaryAddressResolutionStatus != None: print "PrimaryAddressResolutionStatus:" + ` objItem.PrimaryAddressResolutionStatus` if objItem.ProtocolAddress != None: print "ProtocolAddress:" + ` objItem.ProtocolAddress` if objItem.ProtocolAddressResolved != None: print "ProtocolAddressResolved:" + ` objItem.ProtocolAddressResolved` if objItem.RecordRoute != None: print "RecordRoute:" + ` objItem.RecordRoute` if objItem.ReplyInconsistency != None: print "ReplyInconsistency:" + ` objItem.ReplyInconsistency` if objItem.ReplySize != None: print "ReplySize:" + ` objItem.ReplySize` if objItem.ResolveAddressNames != None: print "ResolveAddressNames:" + ` objItem.ResolveAddressNames` if objItem.ResponseTime != None: print "ResponseTime:" + ` objItem.ResponseTime` if objItem.ResponseTimeToLive != None: print "ResponseTimeToLive:" + ` objItem.ResponseTimeToLive` print "RouteRecord:" strList = " " try : for objElem in objItem.RouteRecord : strList = strList + `objElem` + "," except: strList = strList + 'null' print strList print "RouteRecordResolved:" strList = " " try : for objElem in objItem.RouteRecordResolved : strList = strList + `objElem` + "," except: strList = strList + 'null' print strList if objItem.SourceRoute != None: print "SourceRoute:" + ` objItem.SourceRoute` if objItem.SourceRouteType != None: print "SourceRouteType:" + ` objItem.SourceRouteType` if objItem.StatusCode != None: print "StatusCode:" + ` objItem.StatusCode` if objItem.Timeout != None: print "Timeout:" + ` objItem.Timeout` print "TimeStampRecord:" strList = " " try : for objElem in objItem.TimeStampRecord : strList = strList + `objElem` + "," except: strList = strList + 'null' print strList print "TimeStampRecordAddress:" strList = " " try : for objElem in objItem.TimeStampRecordAddress : strList = strList + `objElem` + "," except: strList = strList + 'null' print strList print "TimeStampRecordAddressResolved:" strList = " " try : for objElem in objItem.TimeStampRecordAddressResolved : strList = strList + `objElem` + "," except: strList = strList + 'null' print strList if objItem.TimestampRoute != None: print "TimestampRoute:" + ` objItem.TimestampRoute` if objItem.TimeToLive != None: print "TimeToLive:" + ` objItem.TimeToLive` if objItem.TypeofService != None: print "TypeofService:" + ` objItem.TypeofService`