当前位置: 首页>>代码示例>>Python>>正文


Python AsynsockDispatcher.registerRecvCbFun方法代码示例

本文整理汇总了Python中pysnmp.carrier.asynsock.dispatch.AsynsockDispatcher.registerRecvCbFun方法的典型用法代码示例。如果您正苦于以下问题:Python AsynsockDispatcher.registerRecvCbFun方法的具体用法?Python AsynsockDispatcher.registerRecvCbFun怎么用?Python AsynsockDispatcher.registerRecvCbFun使用的例子?那么恭喜您, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在pysnmp.carrier.asynsock.dispatch.AsynsockDispatcher的用法示例。


在下文中一共展示了AsynsockDispatcher.registerRecvCbFun方法的15个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的Python代码示例。

示例1: send

# 需要导入模块: from pysnmp.carrier.asynsock.dispatch import AsynsockDispatcher [as 别名]
# 或者: from pysnmp.carrier.asynsock.dispatch.AsynsockDispatcher import registerRecvCbFun [as 别名]
    def send(self, host, community, oid, value):
        self.pMod.apiPDU.setDefaults(self.reqPDU)
        self.pMod.apiPDU.setVarBinds(
            self.reqPDU,
            ((oid, self.pMod.OctetString(value)),
            )
        )

        # Build message
        reqMsg = self.pMod.Message()
        self.pMod.apiMessage.setDefaults(reqMsg)
        self.pMod.apiMessage.setCommunity(reqMsg, community)
        self.pMod.apiMessage.setPDU(reqMsg, self.reqPDU)

        transportDispatcher = AsynsockDispatcher()
        transportDispatcher.registerRecvCbFun(self.cbRecvFun)
        transportDispatcher.registerTimerCbFun(self.cbTimerFun)

        # UDP/IPv4
        transportDispatcher.registerTransport(
            udp.domainName, udp.UdpSocketTransport().openClientMode()
        )

        # Pass message to dispatcher
        transportDispatcher.sendMessage(
            encoder.encode(reqMsg), udp.domainName, (host, 161)
        )
        transportDispatcher.jobStarted(1)

        # Dispatcher will finish as job#1 counter reaches zero
        transportDispatcher.runDispatcher()
        transportDispatcher.closeDispatcher()
开发者ID:gdumee,项目名称:LISA-PLUGINS-BBox,代码行数:34,代码来源:bbox.py

示例2: Send_GetSystemPDUName

# 需要导入模块: from pysnmp.carrier.asynsock.dispatch import AsynsockDispatcher [as 别名]
# 或者: from pysnmp.carrier.asynsock.dispatch.AsynsockDispatcher import registerRecvCbFun [as 别名]
def Send_GetSystemPDUName(reqMsg, hostname, port=161):
    transportDispatcher = AsynsockDispatcher()
    transportDispatcher.registerTransport(udp.domainName, udp.UdpSocketTransport().openClientMode())
    transportDispatcher.registerRecvCbFun(cbRecvFun)
    transportDispatcher.registerTimerCbFun(cbTimerFun)
    transportDispatcher.sendMessage(encoder.encode(reqMsg), udp.domainName, (hostname, 161))
    transportDispatcher.jobStarted(1)
    transportDispatcher.runDispatcher()
    transportDispatcher.closeDispatcher()
开发者ID:az0ne,项目名称:python_scrirpts,代码行数:11,代码来源:snmp_test.py

示例3: run

# 需要导入模块: from pysnmp.carrier.asynsock.dispatch import AsynsockDispatcher [as 别名]
# 或者: from pysnmp.carrier.asynsock.dispatch.AsynsockDispatcher import registerRecvCbFun [as 别名]
    def run(self):
        transport_dispatcher = AsynsockDispatcher()
        transport_dispatcher.registerRecvCbFun(self._callback)
        transport_dispatcher.registerTransport(udp.domainName,
            udp.UdpSocketTransport().openServerMode((self.address, self.port)))
        transport_dispatcher.jobStarted(1)

        try:
            transport_dispatcher.runDispatcher()
        except:
            transport_dispatcher.closeDispatcher()
            raise
开发者ID:aleasoluciones,项目名称:infsnmp,代码行数:14,代码来源:traps.py

示例4: sendSNMPMessage

# 需要导入模块: from pysnmp.carrier.asynsock.dispatch import AsynsockDispatcher [as 别名]
# 或者: from pysnmp.carrier.asynsock.dispatch.AsynsockDispatcher import registerRecvCbFun [as 别名]
 def sendSNMPMessage(self, reqMsg):
     transportDispatcher = AsynsockDispatcher()
     
     transportDispatcher.registerTransport(udp.domainName, udp.UdpSocketTransport().openClientMode())
     transportDispatcher.registerRecvCbFun(self.cbRecvFun)
     transportDispatcher.registerTimerCbFun(self.cbTimerFun)
     
     transportDispatcher.sendMessage(encoder.encode(reqMsg), udp.domainName, (self.host, self.port))
     
     transportDispatcher.jobStarted(1)
     transportDispatcher.runDispatcher()
     transportDispatcher.closeDispatcher()
开发者ID:EMamoshin,项目名称:fakebras,代码行数:14,代码来源:SNMPSender.py

示例5: run

# 需要导入模块: from pysnmp.carrier.asynsock.dispatch import AsynsockDispatcher [as 别名]
# 或者: from pysnmp.carrier.asynsock.dispatch.AsynsockDispatcher import registerRecvCbFun [as 别名]
    def run(self):
        # Build PDU
        reqPDU =  pMod.GetRequestPDU()
        pMod.apiPDU.setDefaults(reqPDU)
        pduList = []
        if self._CbLastChange != None:
            pduList.append(((1,3,6,1,2,1,2,2,1,9,self.SNMPIndex), pMod.Null()))
        if self._CbInOctets != None:
            pduList.append(((1,3,6,1,2,1,2,2,1,10,self.SNMPIndex), pMod.Null()))
        if self._CbInUnicastPkts != None:
            pduList.append(((1,3,6,1,2,1,2,2,1,11,self.SNMPIndex), pMod.Null()))
        if self._CbInNUnicastPkts != None:
            pduList.append(((1,3,6,1,2,1,2,2,1,12,self.SNMPIndex), pMod.Null()))
        if self._CbInDiscard != None:
            pduList.append(((1,3,6,1,2,1,2,2,1,13,self.SNMPIndex), pMod.Null()))
        if self._CbInErrors != None:
            pduList.append(((1,3,6,1,2,1,2,2,1,14,self.SNMPIndex), pMod.Null()))
        if self._CbInUnknownProtos != None:
            pduList.append(((1,3,6,1,2,1,2,2,1,15,self.SNMPIndex), pMod.Null()))
        if self._CbOutOctets != None:
            pduList.append(((1,3,6,1,2,1,2,2,1,16,self.SNMPIndex), pMod.Null()))
        if self._CbOutUnicastPkts != None:
            pduList.append(((1,3,6,1,2,1,2,2,1,17,self.SNMPIndex), pMod.Null()))
        if self._CbOutNUnicastPkts != None:
            pduList.append(((1,3,6,1,2,1,2,2,1,18,self.SNMPIndex), pMod.Null()))
        if self._CbOutDiscard != None:
            pduList.append(((1,3,6,1,2,1,2,2,1,19,self.SNMPIndex), pMod.Null()))
        if self._CbOutErrors != None:
            pduList.append(((1,3,6,1,2,1,2,2,1,20,self.SNMPIndex), pMod.Null()))

        pMod.apiPDU.setVarBinds(reqPDU, pduList)
        self._reqPDU = reqPDU
        
        # Build message
        reqMsg = pMod.Message()
        pMod.apiMessage.setDefaults(reqMsg)
        pMod.apiMessage.setCommunity(reqMsg, self._agent)
        pMod.apiMessage.setPDU(reqMsg, reqPDU)

        transportDispatcher = AsynsockDispatcher()
        transportDispatcher.registerTransport(
            udp.domainName, udp.UdpSocketTransport().openClientMode()
            )
        transportDispatcher.registerRecvCbFun(self._cbRecvFun)

        while not self._IsStopped():
            if not transportDispatcher.transportsAreWorking():
                transportDispatcher.sendMessage(encoder.encode(reqMsg), udp.domainName, (self._host, self._port))
                transportDispatcher.jobStarted(1)
                transportDispatcher.runDispatcher()
            sleep(self._interval)
开发者ID:sachinmorabada,项目名称:Handover-Demo,代码行数:53,代码来源:NetStatSnmp.py

示例6: SnmpServer

# 需要导入模块: from pysnmp.carrier.asynsock.dispatch import AsynsockDispatcher [as 别名]
# 或者: from pysnmp.carrier.asynsock.dispatch.AsynsockDispatcher import registerRecvCbFun [as 别名]
class SnmpServer(threading.Thread):
	def __init__(self, address):
		threading.Thread.__init__(self)
		self._address = address
		self._transportDispatcher = AsynsockDispatcher()
		self._transportDispatcher.registerRecvCbFun(self.onSnmpMessage)

	def run(self):
		self._transportDispatcher.registerTransport(udp.domainName, udp.UdpSocketTransport().openServerMode(self._address))
		getLogger().info("Now listening on %s:%s" % self._address)
		self._transportDispatcher.jobStarted(1)
		try:
			self._transportDispatcher.runDispatcher(timeout = 1)
		except Exception, e:
			getLogger().error(u"Error while handling an SNMP message: %s" % unicode(e))
开发者ID:rolfschr,项目名称:testerman,代码行数:17,代码来源:Snmp.py

示例7: run

# 需要导入模块: from pysnmp.carrier.asynsock.dispatch import AsynsockDispatcher [as 别名]
# 或者: from pysnmp.carrier.asynsock.dispatch.AsynsockDispatcher import registerRecvCbFun [as 别名]
    def run(self):
        transportDispatcher = AsynsockDispatcher()
        transportDispatcher.registerRecvCbFun(cbFun)
        # UDP/IPv4
        transportDispatcher.registerTransport(
            udp.domainName, udp.UdpSocketTransport().openServerMode(('0.0.0.0', 162))
        )

        transportDispatcher.jobStarted(1)

        try:
            # Dispatcher will never finish as job#1 never reaches zero
            transportDispatcher.runDispatcher()
        except:
            transportDispatcher.closeDispatcher()
            raise
开发者ID:zarya,项目名称:DRTM-Backend,代码行数:18,代码来源:pytrap.py

示例8: main

# 需要导入模块: from pysnmp.carrier.asynsock.dispatch import AsynsockDispatcher [as 别名]
# 或者: from pysnmp.carrier.asynsock.dispatch.AsynsockDispatcher import registerRecvCbFun [as 别名]
def main():
    'main program function'
    if os.path.isfile(CONFIG_FILE):
        filename = CONFIG_FILE
    elif os.path.isfile('/config/{0}'.format(CONFIG_FILE)):
        filename = '/config/{0}'.format(CONFIG_FILE)
    else:
        print 'Error: cannot find configuration file', CONFIG_FILE
        return

    processConfig(filename)

    transportDispatcher = AsynsockDispatcher()

    transportDispatcher.registerRecvCbFun(cbFun)

# UDP/IPv4
    if gArgs.virtual_router:
        lookupVR(gArgs.virtual_router)

    # During startup, the IP address may not be ready yet. So we try a few times
    for retry in range(30):
        try:
            transportDispatcher.registerTransport(
                udp.domainName, udp.UdpSocketTransport().openServerMode((gArgs.ip_address, 162))
            )
            break
        except Exception:
            time.sleep(5)

# UDP/IPv6
    transportDispatcher.registerTransport(
        udp6.domainName, udp6.Udp6SocketTransport().openServerMode(('::1', 162))
    )

    transportDispatcher.jobStarted(1)

    try:
        # Dispatcher will never finish as job#1 never reaches zero
        transportDispatcher.runDispatcher()
    except Exception:
        transportDispatcher.closeDispatcher()
        raise
开发者ID:extremenetworks,项目名称:EXOS_Apps,代码行数:45,代码来源:eventd.py

示例9: _trap_receiver

# 需要导入模块: from pysnmp.carrier.asynsock.dispatch import AsynsockDispatcher [as 别名]
# 或者: from pysnmp.carrier.asynsock.dispatch.AsynsockDispatcher import registerRecvCbFun [as 别名]
def _trap_receiver(trap_filter, host, port, timeout):
    started = time.time()
    def _trap_timer_cb(now):
        if now - started > timeout:
            raise AssertionError('No matching trap received in %s.' %
                    robot.utils.secs_to_timestr(timeout))
    def _trap_receiver_cb(transport, domain, sock, msg):
        if decodeMessageVersion(msg) != protoVersion2c:
            raise RuntimeError('Only SNMP v2c traps are supported.')

        req, msg = decoder.decode(msg, asn1Spec=v2c.Message())
        pdu = v2c.apiMessage.getPDU(req)

        # ignore any non trap PDUs
        if not pdu.isSameTypeWith(v2c.TrapPDU()):
            return

        if trap_filter(domain, sock, pdu):
            raise StopListener()


        # Stop the receiver if the trap we are looking for was received.
        if False:
            raise StopListener()

    dispatcher = AsynsockDispatcher()
    dispatcher.registerRecvCbFun(_trap_receiver_cb)
    dispatcher.registerTimerCbFun(_trap_timer_cb)

    transport = udp.UdpSocketTransport().openServerMode((host, port))
    dispatcher.registerTransport(udp.domainName, transport)

    # we'll never finish, except through an exception
    dispatcher.jobStarted(1)

    try:
        dispatcher.runDispatcher()
    except StopListener:
        pass
    finally:
        dispatcher.closeDispatcher()
开发者ID:njustbxh,项目名称:robotframework-snmplibrary,代码行数:43,代码来源:traps.py

示例10: start

# 需要导入模块: from pysnmp.carrier.asynsock.dispatch import AsynsockDispatcher [as 别名]
# 或者: from pysnmp.carrier.asynsock.dispatch.AsynsockDispatcher import registerRecvCbFun [as 别名]
    def start(self):
        '''
        ' 启动监听进程
        ' raise Exception: 异常停止时抛出
        '''
        transportDispatcher = AsynsockDispatcher()
        transportDispatcher.registerRecvCbFun(self._cbHandler)

        # UDP/IPv4
        transportDispatcher.registerTransport(\
            udp.domainName, udp.UdpSocketTransport().openServerMode(\
                                            (str(self._configdata.Localaddress), \
                                             int(self._configdata.Trapport)))
        )
        transportDispatcher.jobStarted(1)
        try:
            # 分发器后台运行,任务编号1#。获取0值时停止
            transportDispatcher.runDispatcher()
        except Exception:
            transportDispatcher.closeDispatcher()
            raise
开发者ID:eSDK,项目名称:esdk_Nagios,代码行数:23,代码来源:Trap.py

示例11: run

# 需要导入模块: from pysnmp.carrier.asynsock.dispatch import AsynsockDispatcher [as 别名]
# 或者: from pysnmp.carrier.asynsock.dispatch.AsynsockDispatcher import registerRecvCbFun [as 别名]
 def run(self):
     
    transportDispatcher = AsynsockDispatcher()
    transportDispatcher.registerRecvCbFun(trapCallback)
    if self.ipv6:
        transport = udp.Udp6SocketTransport()
        domainName = udp6.domainName
    else:
        transport = udp.UdpSocketTransport()  
        domainName = udp.domainName
            
    try:     
        transportDispatcher.registerTransport(domainName, transport.openServerMode((self.host, self.port)))
  
        transportDispatcher.jobStarted(1)
        # Dispatcher will never finish as job#1 never reaches zero
        transportDispatcher.runDispatcher()     
    except RuntimeError,e:
        transportDispatcher.closeDispatcher()
        logging.error("Looks like an error: %s" % str(e))
        sys.exit(1)
开发者ID:shreyasnan,项目名称:SplunkModularInputsPythonFramework,代码行数:23,代码来源:snmp.py

示例12: start_agent

# 需要导入模块: from pysnmp.carrier.asynsock.dispatch import AsynsockDispatcher [as 别名]
# 或者: from pysnmp.carrier.asynsock.dispatch.AsynsockDispatcher import registerRecvCbFun [as 别名]
    def start_agent(self):
        print 'start_agent'
        try:
            transportDispatcher = AsynsockDispatcher()
            transportDispatcher.registerRecvCbFun(self.cbFun) #obrabotchik
            
            transportDispatcher.registerTransport(
                udp.domainName, udp.UdpSocketTransport().openServerMode(('localhost', 161))
            )
            
            transportDispatcher.jobStarted(1)
        except Exception as error:
            print 'error %s' % error

        try:
            # Dispatcher will never finish as job#1 never reaches zero
            transportDispatcher.runDispatcher()
        except:
            transportDispatcher.closeDispatcher()
            print 'error run disp'
            raise
开发者ID:EMamoshin,项目名称:fakebras,代码行数:23,代码来源:snmp_agent.py

示例13: run

# 需要导入模块: from pysnmp.carrier.asynsock.dispatch import AsynsockDispatcher [as 别名]
# 或者: from pysnmp.carrier.asynsock.dispatch.AsynsockDispatcher import registerRecvCbFun [as 别名]
 def run(self):
     
    transportDispatcher = AsynsockDispatcher()
    transportDispatcher.registerRecvCbFun(trapCallback)
    if self.ipv6:
        transport = udp.Udp6SocketTransport()
        domainName = udp6.domainName
    else:
        transport = udp.UdpSocketTransport()  
        domainName = udp.domainName
            
    try:     
        transportDispatcher.registerTransport(domainName, transport.openServerMode((self.host, self.port)))
  
        transportDispatcher.jobStarted(1)
        # Dispatcher will never finish as job#1 never reaches zero
        transportDispatcher.runDispatcher()     
    except: # catch *all* exceptions
        e = sys.exc_info()[1]
        transportDispatcher.closeDispatcher()
        logging.error("Failed to register transport and run dispatcher: %s" % str(e))
        sys.exit(1)
开发者ID:Jaykul,项目名称:SplunkModularInputsPythonFramework,代码行数:24,代码来源:snmp.py

示例14: main

# 需要导入模块: from pysnmp.carrier.asynsock.dispatch import AsynsockDispatcher [as 别名]
# 或者: from pysnmp.carrier.asynsock.dispatch.AsynsockDispatcher import registerRecvCbFun [as 别名]
def main():
	signal.signal(signal.SIGINT, signal_handler)
	signal.signal(signal.SIGTERM, signal_handler)
	
	# global
	global myamqp, transportDispatcher

	# Connect to amqp bus
	logger.debug("Start AMQP ...")
	myamqp = camqp()

	logger.info("Load all MIBs ...")
	for oid in snmp2amqp_conf.mibs.keys():
		mibs[oid] = mib(snmp2amqp_conf.mibs[oid])
	

	logger.info("Init SNMP listenner ...")
	transportDispatcher = AsynsockDispatcher()

	transportDispatcher.registerTransport(
		udp.domainName, udp.UdpSocketTransport().openServerMode((snmp2amqp_conf.interface, snmp2amqp_conf.port))
		)

	transportDispatcher.registerRecvCbFun(cbFun)
	transportDispatcher.jobStarted(1) # this job would never finish

	## set euid of process
	os.setuid(getpwnam('canopsis')[2])

	myamqp.start()

	logger.info("Wait SNMP traps ...")
	try:
		transportDispatcher.runDispatcher()
	except Exception, err:
		## Impossible to stop transportDispatcher properly ...
		logger.error(err)
		pass
开发者ID:EzanLTD,项目名称:canopsis,代码行数:40,代码来源:snmp2amqp.py

示例15: print

# 需要导入模块: from pysnmp.carrier.asynsock.dispatch import AsynsockDispatcher [as 别名]
# 或者: from pysnmp.carrier.asynsock.dispatch.AsynsockDispatcher import registerRecvCbFun [as 别名]
        rspPDU = pMod.apiMessage.getPDU(rspMsg)
        # Match response to request
        if pMod.apiPDU.getRequestID(reqPDU)==pMod.apiPDU.getRequestID(rspPDU):
            # Check for SNMP errors reported
            errorStatus = pMod.apiPDU.getErrorStatus(rspPDU)
            if errorStatus:
                print(errorStatus.prettyPrint())
            else:
                for oid, val in pMod.apiPDU.getVarBinds(rspPDU):
                    print('%s = %s' % (oid.prettyPrint(), val.prettyPrint()))
            transportDispatcher.jobFinished(1)
    return wholeMsg

transportDispatcher = AsynsockDispatcher()

transportDispatcher.registerRecvCbFun(cbRecvFun)
transportDispatcher.registerTimerCbFun(cbTimerFun)

# UDP/IPv4
transportDispatcher.registerTransport(
    udp.domainName, udp.UdpSocketTransport().openClientMode()
)

# Pass message to dispatcher
transportDispatcher.sendMessage(
    encoder.encode(reqMsg), udp.domainName, ('192.168.22.241', 161)
)
transportDispatcher.jobStarted(1)

'''
## UDP/IPv6 (second copy of the same PDU will be sent)
开发者ID:tok-gogogo,项目名称:Automation-Framework-for-devices,代码行数:33,代码来源:getgen.py


注:本文中的pysnmp.carrier.asynsock.dispatch.AsynsockDispatcher.registerRecvCbFun方法示例由纯净天空整理自Github/MSDocs等开源代码及文档管理平台,相关代码片段筛选自各路编程大神贡献的开源项目,源码版权归原作者所有,传播和使用请参考对应项目的License;未经允许,请勿转载。