本文整理汇总了Python中pysnmp.carrier.asynsock.dispatch.AsynsockDispatcher.registerTransport方法的典型用法代码示例。如果您正苦于以下问题:Python AsynsockDispatcher.registerTransport方法的具体用法?Python AsynsockDispatcher.registerTransport怎么用?Python AsynsockDispatcher.registerTransport使用的例子?那么恭喜您, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在类pysnmp.carrier.asynsock.dispatch.AsynsockDispatcher
的用法示例。
在下文中一共展示了AsynsockDispatcher.registerTransport方法的15个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的Python代码示例。
示例1: send
# 需要导入模块: from pysnmp.carrier.asynsock.dispatch import AsynsockDispatcher [as 别名]
# 或者: from pysnmp.carrier.asynsock.dispatch.AsynsockDispatcher import registerTransport [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()
示例2: Send_GetSystemPDUName
# 需要导入模块: from pysnmp.carrier.asynsock.dispatch import AsynsockDispatcher [as 别名]
# 或者: from pysnmp.carrier.asynsock.dispatch.AsynsockDispatcher import registerTransport [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()
示例3: sendSNMPMessage
# 需要导入模块: from pysnmp.carrier.asynsock.dispatch import AsynsockDispatcher [as 别名]
# 或者: from pysnmp.carrier.asynsock.dispatch.AsynsockDispatcher import registerTransport [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()
示例4: run
# 需要导入模块: from pysnmp.carrier.asynsock.dispatch import AsynsockDispatcher [as 别名]
# 或者: from pysnmp.carrier.asynsock.dispatch.AsynsockDispatcher import registerTransport [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
示例5: run
# 需要导入模块: from pysnmp.carrier.asynsock.dispatch import AsynsockDispatcher [as 别名]
# 或者: from pysnmp.carrier.asynsock.dispatch.AsynsockDispatcher import registerTransport [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)
示例6: SnmpServer
# 需要导入模块: from pysnmp.carrier.asynsock.dispatch import AsynsockDispatcher [as 别名]
# 或者: from pysnmp.carrier.asynsock.dispatch.AsynsockDispatcher import registerTransport [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))
示例7: run
# 需要导入模块: from pysnmp.carrier.asynsock.dispatch import AsynsockDispatcher [as 别名]
# 或者: from pysnmp.carrier.asynsock.dispatch.AsynsockDispatcher import registerTransport [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
示例8: main
# 需要导入模块: from pysnmp.carrier.asynsock.dispatch import AsynsockDispatcher [as 别名]
# 或者: from pysnmp.carrier.asynsock.dispatch.AsynsockDispatcher import registerTransport [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
示例9: _trap_receiver
# 需要导入模块: from pysnmp.carrier.asynsock.dispatch import AsynsockDispatcher [as 别名]
# 或者: from pysnmp.carrier.asynsock.dispatch.AsynsockDispatcher import registerTransport [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()
示例10: start_agent
# 需要导入模块: from pysnmp.carrier.asynsock.dispatch import AsynsockDispatcher [as 别名]
# 或者: from pysnmp.carrier.asynsock.dispatch.AsynsockDispatcher import registerTransport [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
示例11: start
# 需要导入模块: from pysnmp.carrier.asynsock.dispatch import AsynsockDispatcher [as 别名]
# 或者: from pysnmp.carrier.asynsock.dispatch.AsynsockDispatcher import registerTransport [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
示例12: run
# 需要导入模块: from pysnmp.carrier.asynsock.dispatch import AsynsockDispatcher [as 别名]
# 或者: from pysnmp.carrier.asynsock.dispatch.AsynsockDispatcher import registerTransport [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)
示例13: run
# 需要导入模块: from pysnmp.carrier.asynsock.dispatch import AsynsockDispatcher [as 别名]
# 或者: from pysnmp.carrier.asynsock.dispatch.AsynsockDispatcher import registerTransport [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)
示例14: main
# 需要导入模块: from pysnmp.carrier.asynsock.dispatch import AsynsockDispatcher [as 别名]
# 或者: from pysnmp.carrier.asynsock.dispatch.AsynsockDispatcher import registerTransport [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
示例15: pollFn
# 需要导入模块: from pysnmp.carrier.asynsock.dispatch import AsynsockDispatcher [as 别名]
# 或者: from pysnmp.carrier.asynsock.dispatch.AsynsockDispatcher import registerTransport [as 别名]
#.........这里部分代码省略.........
)
else:
for varBind in varBinds:
print(' = '.join([ x.prettyPrint() for x in varBind ]))
# Get the temperature
errorIndication, errorStatus, errorIndex, varBinds = next(
getCmd(SnmpEngine(),
CommunityData('public',mpModel=0),
UdpTransportTarget(('localhost', 1161)),
ContextData(),
ObjectType(ObjectIdentity('1.3.6.1.2.1.1.1.0')))
)
if errorIndication:
print(errorIndication)
elif errorStatus:
print('%s at %s' % (
errorStatus.prettyPrint(),
errorIndex and varBinds[int(errorIndex)-1][0] or '?'
)
)
else:
#for varBind in varBinds:
# print(' = '.join([ x.prettyPrint() for x in varBind ]))
#SET Command
#Check if the temperature is less than 10
for oid, val in varBinds:
print('%s = %s' % (oid.prettyPrint(), val.prettyPrint()))
returnedVal = int(val)
if (returnedVal < 10):
print returnedVal
# Protocol version to use
#pMod = api.protoModules[api.protoVersion1]
pMod = api.protoModules[api.protoVersion2c]
# Build PDU
reqPDU = pMod.SetRequestPDU()
pMod.apiPDU.setDefaults(reqPDU)
pMod.apiPDU.setVarBinds(
reqPDU,
# Change the heater status to ON
( ('1.3.6.1.2.1.1.1.0', pMod.OctetString('ON')),
# ('1.3.6.1.2.1.1.3.0', pMod.TimeTicks(12))
)
)
# Build message
reqMsg = pMod.Message()
pMod.apiMessage.setDefaults(reqMsg)
pMod.apiMessage.setCommunity(reqMsg, 'public')
pMod.apiMessage.setPDU(reqMsg, reqPDU)
startedAt = time()
def cbTimerFun(timeNow):
if timeNow - startedAt > 3:
raise Exception("Request timed out")
def cbRecvFun(transportDispatcher, transportDomain, transportAddress,
wholeMsg, reqPDU=reqPDU):
while wholeMsg:
rspMsg, wholeMsg = decoder.decode(wholeMsg, asn1Spec=pMod.Message())
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, ('localhost', 1162)
)
transportDispatcher.jobStarted(1)
# Dispatcher will finish as job#1 counter reaches zero
transportDispatcher.runDispatcher()
transportDispatcher.closeDispatcher()
else:
print "value greater than 10"
开发者ID:stephenoken,项目名称:-SNMP-Management-Station-for-Wireless-Indoor-Network,代码行数:104,代码来源:manager.py