小编Ric*_*chP的帖子

如何正确访问pysnmp陷阱中返回的varBinds

我正在使用python 2.7并尝试使用pysnmp捕获SNMP陷阱。我正在使用http://pysnmp.sourceforge.net/examples/current/v1arch/manager/ntfrcv/v2c-multiple-transports.html中的示例。我在从varBinds正确获取键/值时遇到问题。示例代码似乎无法正常工作。
完整代码:

from pysnmp.carrier.asynsock.dispatch import AsynsockDispatcher
from pysnmp.carrier.asynsock.dgram import udp, udp6
from pyasn1.codec.ber import decoder
from pysnmp.proto import api

def cbFun(transportDispatcher, transportDomain, transportAddress, wholeMsg):
    while wholeMsg:
        msgVer = int(api.decodeMessageVersion(wholeMsg))
        if msgVer in api.protoModules:
            pMod = api.protoModules[msgVer]
        else:
            print('Unsupported SNMP version %s' % msgVer)
            return
        reqMsg, wholeMsg = decoder.decode(
            wholeMsg, asn1Spec=pMod.Message(),
            )
        print('Notification message from %s:%s: ' % (
            transportDomain, transportAddress
            )
        )
        reqPDU = pMod.apiMessage.getPDU(reqMsg)
        if reqPDU.isSameTypeWith(pMod.TrapPDU()):
            if msgVer == api.protoVersion1:
                j = pMod.apiTrapPDU.getEnterprise(reqPDU)
                print 'Enterprise: ({})'.format(str(j)) …
Run Code Online (Sandbox Code Playgroud)

python pysnmp

2
推荐指数
1
解决办法
1708
查看次数

标签 统计

pysnmp ×1

python ×1