简体   繁体   中英

pysnmp get subtree and do not resolve oid against mib name

I want to provide pysnmp with a base oid for example 1.3.6.1.2.1.2.2.1.8 and be able to get all it's children underneath it eg 1.3.6.1.2.1.2.2.1.8.1 - 1.3.6.1.2.1.2.2.1.8.n without going over to 1.3.6.1.2.1.2.2.1.9 . I was wondering how I would go about this? I have also tried doing a GETNEXT but not sure how to go about achieving what I want. Another question is pysnmp seems to try to resolve the oid to the mib associated with it, how do I go about turning this feature off? I am currently using the latest version of pysnmp.

Try passing both lookupMib=False and lexicographicMode=False to nextCmd() or 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]))

The technical post webpages of this site follow the CC BY-SA 4.0 protocol. If you need to reprint, please indicate the site URL or the original address.Any question please contact:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM