Translating pysnmp oids to human readable strings

SpamMePlease PleasePlease spankthespam at googlemail.com
Fri Mar 6 11:37:38 CET 2009


On Fri, Mar 6, 2009 at 9:03 AM, Shantanu Joshi <weemadarthur at gmail.com> wrote:
>
> SpamMePlease PleasePlease <spankthespam at googlemail.com> writes:
>
>> On Fri, Mar 6, 2009 at 6:56 AM, Shantanu Joshi <weemadarthur at gmail.com> wrote:
>>> You need to parse the MIB file to get the human-readable names
>>> corresponding to the OIDs. The pysnmp library already provides this
>>> functionality. I haven't used this feature myself (I mainly use pysnmp
>>> to automate SNMP walk requests, like the one in your code), but the
>>> documentation at found the below example at
>>> http://pysnmp.sourceforge.net/docs/4.1.x/index.html#MIB-SERVICES.
>>>
>>>
>>>>>> from pysnmp.smi import builder, view
>>>>>>
>>>>>> mibBuilder = builder.MibBuilder().loadModules('SNMPv2-MIB')
>>>>>> mibViewController = view.MibViewController(mibBuilder)
>>>>>>
>>>>>> oid,label,suffix = mibViewController.getNodeName((1,3,6,1,2,'mib-2',1,'sysDescr'))
>>>>>> print oid
>>> (1, 3, 6, 1, 2, 1, 1, 1)
>>>>>> print label
>>> ('iso', 'org', 'dod', 'internet', 'mgmt', 'mib-2', 'system', 'sysDescr')
>>>>>> print suffix
>>> ()
>>> --
>>> http://mail.python.org/mailman/listinfo/python-list
>>>
>>
>> Yes, I have seen that, but I cant get it working as expected (or it
>> doesent to what expected at all). I cant make it return values like:
>> jnxBgpM2PeerIdentifier.0.ipv4.38.101.161.119.1.38.101.161.118 (the one
>> of many I got from snmpwalk) but instead I am getting bunch of words
>> like iso, internet, mgmt, which is no way close to desired effect.
>> Still no luck - anybody with a clue?
>
>
> Every node in a MIB file is rooted at iso.org.dod.internet.
> jnxBgpM2PeerIdentifier has OID .1.3.6.1.4.1.2636.5.1.1.2.1.1.1.1
> (if I've got the right MIB, I searched for jnxBgpM2PeerIdentifier on
> Google and got the BGP4-V2-MIB-JUNIPER MIB file). The .1.3.6.1.4.1
> corresponds to iso.org.dod.internet.private.enterprises, so you can
> safely skip that part. The next value 2636, is uniquely assigned to
> Juniper, and the rest is up to whatever scheme Juniper uses to prepare
> mibs.
>
> The pysnmp library doesn't know anything about BGP4-V2-MIB-JUNIPER MIB,
> since it is not one of the standard MIBS, so it will parse everything up
> to what is defined in the standard mibs and return the rest in numeric
> form. There was a paragraph on the page I linked which described how to
> prepare MIB files for consumption by pysnmp. Did you try that?
>
>
> --
> http://mail.python.org/mailman/listinfo/python-list
>

Thats a good one, sir! I managed to create jnx-bgpmib2.py out from
/usr/share/snmp/mibs/jnx-bgpmib2.txt that contains the mibs snmpwalk
found for me. Now, in what way can I 'feed' the pysnmp with this new
file and how to ask it kindly to convert these number strings into
nice readable strings?

-- 
--------------------
Spank The Spam!



More information about the Python-list mailing list