diff options
Diffstat (limited to 'examples/v3arch/asyncore/oneliner/manager/cmdgen/getnext-v1-with-custom-mibs-location.py')
-rw-r--r-- | examples/v3arch/asyncore/oneliner/manager/cmdgen/getnext-v1-with-custom-mibs-location.py | 52 |
1 files changed, 52 insertions, 0 deletions
diff --git a/examples/v3arch/asyncore/oneliner/manager/cmdgen/getnext-v1-with-custom-mibs-location.py b/examples/v3arch/asyncore/oneliner/manager/cmdgen/getnext-v1-with-custom-mibs-location.py new file mode 100644 index 0000000..0367eb3 --- /dev/null +++ b/examples/v3arch/asyncore/oneliner/manager/cmdgen/getnext-v1-with-custom-mibs-location.py @@ -0,0 +1,52 @@ +# +# GETNEXT Command Generator Application +# +# Perform SNMP GETNEXT operation with the following options: +# +# with SNMPv1, community 'public' +# over IPv4/UDP +# to an Agent at demo.snmplabs.com:161 +# two columns of the IF-MIB::ifEntry table +# search for pysnmp MIBs at specific filesystem location +# stop when response OIDs leave the scopes of initial OIDs +# +# This script performs similar to the following Net-SNMP command: +# +# $ snmpwalk -v1 -c public -ObentU demo.snmplabs.com IF-MIB::ifDescr IF-MIB::ifType +# +# The pysnmp engine maintains its own MIB search path which is usued +# for searching for MIB modules by name. By default pysnmp will search +# its built-in MIB repository (pysnmp.smi.mibs.instances, pysnmp.smi.mibs) +# and pysnmp-mibs package (pysnmp_mibs). Those two entries are normally +# found relative to $PYTHONPATH. Besides searching MIBs as Python modules +# (which could be egg-ed or not), pysnmp can also search for stand-alone +# files in given directories. The latter could be specified by +# ObjectIdentity.addMibSource() calls. New search path entries are added +# in front of existing ones in search path. +# +from pysnmp.entity.rfc3413.oneliner.cmdgen import * + +for errorIndication, \ + errorStatus, errorIndex, \ + varBinds in nextCmd(SnmpEngine(), + CommunityData('public', mpModel=0), + UdpTransportTarget(('demo.snmplabs.com', 161)), + ContextData(), + ObjectType(ObjectIdentity('IF-MIB', 'ifDescr').addMibSource('/tmp/mymibs')), + ObjectType(ObjectIdentity('IF-MIB', 'ifType')), + lookupNames=True, lookupValues=True): + # Check for errors and print out results + if errorIndication: + print(errorIndication) + break + else: + if 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 ])) |