pysnmp 获取子树并且不根据 mib 名称解析 oid

pysnmp get subtree and do not resolve oid against mib name

我想为 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 似乎试图将 oid 解析为与之关联的 mib,我该如何关闭此功能?我目前使用的是最新版本的pysnmp。

尝试将 lookupMib=False and lexicographicMode=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]))