pysnmp得到子树,不解决对mib名称的oid

时间:2016-01-06 16:08:32

标签: python python-2.7 snmp pysnmp

我想为pysnmp提供一个基础oid,例如1.3.6.1.2.1.2.2.1.8,并且能够让它下面的所有孩子,例如1.3.6.1.2.1.2.2.1.8.1 - 1.3.6.1.2.1.2.2.1.8.n,而无需转到1.3.6.1.2.1.2.2.1.9。我想知道我会怎么做?我也尝试过做GETNEXT,但不知道如何实现我想要的。另一个问题是pysnmp似乎试图解决与它相关的mid的oid,我该如何关闭此功能呢?我目前正在使用最新版本的pysnmp。

1 个答案:

答案 0 :(得分:2)

尝试将lookupMib=FalselexicographicMode=False传递给nextCmd()或bulkCmd():

from pysnmp.hlapi import *

for errorIndication, errorStatus, \
    errorIndex, varBinds in bulkCmd(
        SnmpEngine(),
        CommunityData('public'),
        UdpTransportTarget(('demo.snmplabs.com', 161)),
        ContextData(),
        0, 50,  # GETBULK specific: request up to 50 OIDs in a single response
        ObjectType(ObjectIdentity('1.3.6.1.2.1.2.2.1.8')),
        lookupMib=False, lexicographicMode=False):

    if errorIndication:
        print(errorIndication)
        break
    elif errorStatus:
        print('%s at %s' % (errorStatus.prettyPrint(),
                            errorIndex and varBinds[int(errorIndex)-1][0] or '?'))
        break
    else:
        for varBind in varBinds:
            print(' = '.join([x.prettyPrint() for x in varBind]))