diff options
Diffstat (limited to 'examples')
7 files changed, 148 insertions, 8 deletions
diff --git a/examples/hlapi/asyncio/agent/ntforg/default-v1-trap.py b/examples/hlapi/asyncio/agent/ntforg/default-v1-trap.py index 20cee839..dbfb45a3 100644 --- a/examples/hlapi/asyncio/agent/ntforg/default-v1-trap.py +++ b/examples/hlapi/asyncio/agent/ntforg/default-v1-trap.py @@ -34,10 +34,10 @@ def run(): snmpEngine = SnmpEngine() errorIndication, errorStatus, errorIndex, varBinds = yield from sendNotification( snmpEngine, - CommunityData('public'), # mpModel=0), + CommunityData('public', mpModel=0), UdpTransportTarget(('localhost', 162)), ContextData(), - 'inform', + 'trap', NotificationType( ObjectIdentity('1.3.6.1.6.3.1.1.5.2') ).addVarBinds( diff --git a/examples/hlapi/asyncore/agent/ntforg/default-v1-trap.py b/examples/hlapi/asyncore/agent/ntforg/default-v1-trap.py new file mode 100644 index 00000000..f36009eb --- /dev/null +++ b/examples/hlapi/asyncore/agent/ntforg/default-v1-trap.py @@ -0,0 +1,47 @@ +""" +SNMPv1 TRAP with defaults ++++++++++++++++++++++++++ + +Send SNMPv1 TRAP through unified SNMPv3 message processing framework +using the following options: + +* SNMPv1 +* with community name 'public' +* over IPv4/UDP +* send TRAP notification +* with Generic Trap #1 (warmStart) and Specific Trap 0 +* with default Uptime +* with default Agent Address +* with Enterprise OID 1.3.6.1.4.1.20408.4.1.1.2 +* include managed object information '1.3.6.1.2.1.1.1.0' = 'my system' + +Functionally similar to: + +| $ snmptrap -v1 -c public demo.snmplabs.com \ +| 1.3.6.1.4.1.20408.4.1.1.2 \ +| 0.0.0.0 \ +| 1 \ +| 0 \ +| 0 +| '1.3.6.1.2.1.1.1.0' s 'my system' + +"""# +from pysnmp.hlapi.asyncore import * + +snmpEngine = SnmpEngine() + +sendNotification( + snmpEngine, + CommunityData('public', mpModel=0), + UdpTransportTarget(('localhost', 162)), + ContextData(), + 'trap', + NotificationType( + ObjectIdentity('1.3.6.1.6.3.1.1.5.2') + ).addVarBinds( + ('1.3.6.1.6.3.1.1.4.3.0', '1.3.6.1.4.1.20408.4.1.1.2'), + ('1.3.6.1.2.1.1.1.0', OctetString('my system')) + ) +) + +snmpEngine.transportDispatcher.runDispatcher() diff --git a/examples/hlapi/asyncore/manager/cmdgen/multiple-concurrent-queries.py b/examples/hlapi/asyncore/manager/cmdgen/multiple-concurrent-queries.py index 6222c3ee..89e9abf2 100644 --- a/examples/hlapi/asyncore/manager/cmdgen/multiple-concurrent-queries.py +++ b/examples/hlapi/asyncore/manager/cmdgen/multiple-concurrent-queries.py @@ -74,7 +74,7 @@ snmpEngine = SnmpEngine() # Submit GET requests for authData, transportTarget, varNames in targets: - getCmd(snmpEngine, authData, transportTarget, ContextData(), varNames, - cbFun=cbFun, cbCtx=(authData, transportTarget)) + getCmd(snmpEngine, authData, transportTarget, ContextData(), *varNames, + **dict(cbFun=cbFun, cbCtx=(authData, transportTarget))) snmpEngine.transportDispatcher.runDispatcher() diff --git a/examples/hlapi/asyncore/manager/cmdgen/pull-mibs-from-multiple-agents-at-once.py b/examples/hlapi/asyncore/manager/cmdgen/pull-mibs-from-multiple-agents-at-once.py index b671f190..4eb93317 100644 --- a/examples/hlapi/asyncore/manager/cmdgen/pull-mibs-from-multiple-agents-at-once.py +++ b/examples/hlapi/asyncore/manager/cmdgen/pull-mibs-from-multiple-agents-at-once.py @@ -67,7 +67,7 @@ snmpEngine = SnmpEngine() # Submit initial GETNEXT requests and wait for responses for authData, transportTarget, varBinds in targets: - nextCmd(snmpEngine, authData, transportTarget, ContextData(), varBinds, - cbFun=cbFun, cbCtx=(authData, transportTarget)) + nextCmd(snmpEngine, authData, transportTarget, ContextData(), + *varBinds, **dict(cbFun=cbFun, cbCtx=(authData, transportTarget))) snmpEngine.transportDispatcher.runDispatcher() diff --git a/examples/hlapi/asyncore/manager/cmdgen/pull-whole-mib.py b/examples/hlapi/asyncore/manager/cmdgen/pull-whole-mib.py new file mode 100644 index 00000000..19b397f6 --- /dev/null +++ b/examples/hlapi/asyncore/manager/cmdgen/pull-whole-mib.py @@ -0,0 +1,49 @@ +""" +Walk whole MIB +++++++++++++++ + +Send a series of SNMP GETNEXT requests using the following options: + +* with SNMPv3, user 'usr-md5-none', MD5 authentication, no privacy +* over IPv4/UDP +* to an Agent at demo.snmplabs.com:161 +* for all OIDs in IF-MIB + +Functionally similar to: + +| $ snmpwalk -v3 -lauthNoPriv -u usr-md5-none -A authkey1 -X privkey1 \ +| demo.snmplabs.com IF-MIB:: + +"""# +from pysnmp.hlapi.asyncore import * + +def cbFun(snmpEngine, sendRequestHandle, errorIndication, + errorStatus, errorIndex, varBindTable, cbCtx): + if errorIndication: + print(errorIndication) + return + elif errorStatus: + print('%s at %s' % ( + errorStatus.prettyPrint(), + errorIndex and varBindTable[-1][int(errorIndex)-1][0] or '?' + ) + ) + return + else: + for varBindRow in varBindTable: + for varBind in varBindRow: + print(' = '.join([ x.prettyPrint() for x in varBind ])) + + return True # request lower layers to do GETNEXT and call us back + +snmpEngine = SnmpEngine() + +nextCmd(snmpEngine, + UsmUserData('usr-md5-none', 'authkey1'), + UdpTransportTarget(('demo.snmplabs.com', 161)), + ContextData(), + ObjectType(ObjectIdentity('SNMPv2-MIB', 'system')), + ObjectType(ObjectIdentity('IF-MIB', 'ifTable')), + cbFun=cbFun) + +snmpEngine.transportDispatcher.runDispatcher() diff --git a/examples/hlapi/asyncore/manager/cmdgen/query-multiple-snmp-engines.py b/examples/hlapi/asyncore/manager/cmdgen/query-multiple-snmp-engines.py index d0a5c624..b5a17a64 100644 --- a/examples/hlapi/asyncore/manager/cmdgen/query-multiple-snmp-engines.py +++ b/examples/hlapi/asyncore/manager/cmdgen/query-multiple-snmp-engines.py @@ -91,7 +91,7 @@ snmpEngineB.registerTransportDispatcher(transportDispatcher, 'B') for authData, transportTarget, varBinds in targets: snmpEngine = transportTarget.getTransportInfo()[1][1] % 3 and \ snmpEngineA or snmpEngineB - getCmd(snmpEngine, authData, transportTarget, ContextData(), varBinds, - cbFun=cbFun, cbCtx=(snmpEngine, authData, transportTarget)) + getCmd(snmpEngine, authData, transportTarget, ContextData(), *varBinds, + **dict(cbFun=cbFun, cbCtx=(snmpEngine, authData, transportTarget))) transportDispatcher.runDispatcher() diff --git a/examples/hlapi/asyncore/manager/cmdgen/v2c-get.py b/examples/hlapi/asyncore/manager/cmdgen/v2c-get.py new file mode 100644 index 00000000..f46ae515 --- /dev/null +++ b/examples/hlapi/asyncore/manager/cmdgen/v2c-get.py @@ -0,0 +1,44 @@ +""" +SNMPv2c ++++++++ + +Send SNMP GET request using the following options: + + * with SNMPv1, community 'public' + * over IPv4/UDP + * to an Agent at demo.snmplabs.com:161 + * for two instances of SNMPv2-MIB::sysDescr.0 MIB object, + +Functionally similar to: + +| $ snmpget -v2c -c public demo.snmplabs.com SNMPv2-MIB::sysDescr.0 + +"""# +from pysnmp.hlapi.asyncore import * + +def cbFun(snmpEngine, sendRequestHandle, errorIndication, + errorStatus, errorIndex, varBinds, cbCtx): + if errorIndication: + print(errorIndication) + return + elif errorStatus: + print('%s at %s' % ( + errorStatus.prettyPrint(), + errorIndex and varBindTable[-1][int(errorIndex)-1][0] or '?' + ) + ) + return + else: + for varBind in varBinds: + print(' = '.join([ x.prettyPrint() for x in varBind ])) + +snmpEngine = SnmpEngine() + +getCmd(snmpEngine, + CommunityData('public'), + UdpTransportTarget(('demo.snmplabs.com', 161)), + ContextData(), + ObjectType(ObjectIdentity('SNMPv2-MIB', 'sysDescr', 0)), + cbFun=cbFun) + +snmpEngine.transportDispatcher.runDispatcher() |