现在的位置: 首页 > 综合 > 正文

pysnmp的Asyn模式

2018年03月30日 ⁄ 综合 ⁄ 共 1359字 ⁄ 字号 评论关闭
import sys
sys.path.append('/V100R001C00B040/msp/software/packages/pysnmp-4.2.5/')
sys.path.append('/V100R001C00B040/msp/software/packages/pycrypto-2.6.1/')
sys.path.append('/V100R001C00B040/msp/software/packages/pyasn1')
sys.path.append('/V100R001C00B040/msp/software/packages/futures-2.1.4/')
sys.path.append('/V100R001C00B040/msp/software/packages/APScheduler-2.0.3/')
import logging
import time
import threading
from msg.sigma.manager.snmplib import Snmp
from concurrent import futures
from apscheduler.scheduler import Scheduler as APScheduler

from pysnmp.entity import config
from pysnmp.entity.rfc3413.oneliner import cmdgen

def cbFun(sendRequestHandle, errorIndication, errorStatus, errorIndex,
          varBinds, cbCtx):
    if errorIndication:
        print errorIndication
        return
    if errorStatus:
        print('%s at %s' % \
        (errorStatus.prettyPrint(),
        errorIndex and varBindTable[-1][int(errorIndex)-1] or '?')
        )
        return
    print varBinds
    for oid, val in varBinds:
        if val is None:
            print(oid.prettyPrint())
        else:
            print('%s = %s' % (oid.prettyPrint(), val.prettyPrint()))

cmdGen  = cmdgen.AsynCommandGenerator()
cmdGen.getCmd(                                                       
        cmdgen.UsmUserData('root', 'Work@7*24', 'Work@7*24',config.usmHMACSHAAuthProtocol, config.usmAesCfb128Protocol),
        cmdgen.UdpTransportTarget(('1.1.0.107', 161)),                                                                  
        ( cmdgen.MibVariable('SNMPv2-MIB', 'sysDescr', 0), ),                                                           
        (cbFun, None)                                                                                                   
        )                                                                                                               
print 'send before rundispatcher'                                                                                       
cmdGen.snmpEngine.transportDispatcher.runDispatcher()                                                                  
print 'send after rundispatcher'                                                                                        
a=raw_input()

抱歉!评论已关闭.