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') import logging import time import threading from pysnmp.entity import config from pysnmp.entity.rfc3413.oneliner import cmdgen class scanworker(threading.Thread): def __init__(self, func, *args): threading.Thread.__init__(self) self.__func = func self.setDaemon(True) def run(self): try: self.__func() except: print 'error' def app_snmp_get(ipaddress, names, callback, *args, **kargs): ''' ''' cbCtx = (callback, args, kargs) cmdGen = cmdgen.AsynCommandGenerator() cmdGen.getCmd( cmdgen.UsmUserData('root', 'Work@7*24', 'Work@7*24',config.usmHMACSHAAuthProtocol, config.usmAesCfb128Protocol), cmdgen.UdpTransportTarget((ipaddress, 161)), ( cmdgen.MibVariable('SNMPv2-MIB', names, 0), ), (cbFun, cbCtx) ) #cmdGen.snmpEngine.transportDispatcher.runDispatcher() scanworker(cmdGen.snmpEngine.transportDispatcher.runDispatcher).start()