0

i'm trying to fetch the hrstorage and hrDevice using pysnmp. this is the code I'm using in pysnmp:

def snmp_walk_v2c(ip, community_string, snmp_list):
    parsed_dict = {}
    for obj in snmp_list:
        snmp_data = nextCmd(SnmpEngine(),
                          CommunityData(community_string, mpModel=1),
                          UdpTransportTarget((ip, 161), timeout=3),
                          ContextData(),
                          ObjectType(ObjectIdentity(obj['mib_file'], obj['object_table'])),
                          lexicographicMode=False,
                          lookupNames=True, lookupValues=True)
        obj_data = []
        for (errorIndication, errorStatus, errorIndex, varBinds) in snmp_data: 
            if errorIndication:
                print(f"SNMP Walk Error: {errorIndication}")
                break
            elif errorStatus:
                print(f"SNMP Walk Error: {errorStatus.prettyPrint()}")
                break
            else:
                for varBind in varBinds:
                    print(f"Data: {varBind.prettyPrint()}")
                    obj_data.append(str(varBind))

        parsed_dict[obj['name']] = obj_data
        parsed_dict['ip'] = ip
    
    # print(parsed_dict)
    
    json_message = json.dumps(parsed_dict)

and for the snmp list, I'm using this:

dt_lst = [
    {'name': 'hrstorage', 'oid': '1.3.6.1.2.1.25.2', 'mib_file': 'HOST-RESOURCES-MIB', 'object_table': 'hrStorageTable'},
    {'name': 'hrDevice', 'oid': '1.3.6.1.2.1.25.3', 'mib_file': 'HOST-RESOURCES-MIB', 'object_table': 'hrDevice'},
]

now when I do this, I get this data for hrdevice's hrdevicetype:

Data: HOST-RESOURCES-MIB::hrDeviceType.196608 = HOST-RESOURCES-MIB::hrDeviceTypes.3
Data: HOST-RESOURCES-MIB::hrDeviceType.196609 = HOST-RESOURCES-MIB::hrDeviceTypes.3
Data: HOST-RESOURCES-MIB::hrDeviceType.196610 = HOST-RESOURCES-MIB::hrDeviceTypes.3
Data: HOST-RESOURCES-MIB::hrDeviceType.196611 = HOST-RESOURCES-MIB::hrDeviceTypes.3
Data: HOST-RESOURCES-MIB::hrDeviceType.196612 = HOST-RESOURCES-MIB::hrDeviceTypes.3
Data: HOST-RESOURCES-MIB::hrDeviceType.196613 = HOST-RESOURCES-MIB::hrDeviceTypes.3
Data: HOST-RESOURCES-MIB::hrDeviceType.196614 = HOST-RESOURCES-MIB::hrDeviceTypes.3
Data: HOST-RESOURCES-MIB::hrDeviceType.196615 = HOST-RESOURCES-MIB::hrDeviceTypes.3
Data: HOST-RESOURCES-MIB::hrDeviceType.262145 = HOST-RESOURCES-MIB::hrDeviceTypes.4
Data: HOST-RESOURCES-MIB::hrDeviceType.262146 = HOST-RESOURCES-MIB::hrDeviceTypes.4
Data: HOST-RESOURCES-MIB::hrDeviceType.786432 = HOST-RESOURCES-MIB::hrDeviceTypes.12

but when I do it using snmpwalk I get the following data:

HOST-RESOURCES-MIB::hrDeviceType.196608 = OID: HOST-RESOURCES-TYPES::hrDeviceProcessor
HOST-RESOURCES-MIB::hrDeviceType.196609 = OID: HOST-RESOURCES-TYPES::hrDeviceProcessor
HOST-RESOURCES-MIB::hrDeviceType.196610 = OID: HOST-RESOURCES-TYPES::hrDeviceProcessor
HOST-RESOURCES-MIB::hrDeviceType.196611 = OID: HOST-RESOURCES-TYPES::hrDeviceProcessor
HOST-RESOURCES-MIB::hrDeviceType.196612 = OID: HOST-RESOURCES-TYPES::hrDeviceProcessor
HOST-RESOURCES-MIB::hrDeviceType.196613 = OID: HOST-RESOURCES-TYPES::hrDeviceProcessor
HOST-RESOURCES-MIB::hrDeviceType.196614 = OID: HOST-RESOURCES-TYPES::hrDeviceProcessor
HOST-RESOURCES-MIB::hrDeviceType.196615 = OID: HOST-RESOURCES-TYPES::hrDeviceProcessor
HOST-RESOURCES-MIB::hrDeviceType.262145 = OID: HOST-RESOURCES-TYPES::hrDeviceNetwork
HOST-RESOURCES-MIB::hrDeviceType.262146 = OID: HOST-RESOURCES-TYPES::hrDeviceNetwork
HOST-RESOURCES-MIB::hrDeviceType.786432 = OID: HOST-RESOURCES-TYPES::hrDeviceCoprocessor

I want the actual value like snmpwalk which I'm not getting with pysnmp, what is the issue and what can I do to solve it. this also applies for hrdevice's hrfsType and hrstorage's hrstorageType

red wing
  • 43
  • 9
  • You will need much more if NET-SNMP snmpwalk behaviors are what you desired, https://github.com/lextudio/snmpclitools/blob/master/snmpclitools/scripts/snmpwalk.py – Lex Li Aug 08 '23 at 14:47

0 Answers0