snmp-async is an ASDF-installable library for fast asynchronous SNMP.
It uses cl-net-snmp for the SNMP protocol handling and uses cffi-udp for networking. It supports both IPv4 and IPv6.
Email John Fremlin at MSI. His address is jf@[the domain without www].
View or edit the Cliki entry.
Start Lisp. Get asdf-install.
Here is a simple example with all the IPs set to localhost.
CL-USER> (asdf-install:install 'snmp-async)
CL-USER> (asdf:operate 'asdf:load-op 'snmp-async)
CL-USER> (snmp-async:snmp-request-many '( ("127.0.0.1" :port 12312
:oids ( "ipAdEntAddr")) ("127.0.0.1" :oids ( "ipAdEntAddr"))
("127.0.0.1" :oids
(".iso.org.dod.internet.mgmt.mib-2.system.sysDescr.0") :command
snmp-async:snmp-get-async)))
Output:
((:AGENT ("127.0.0.1" :OIDS ("ipAdEntAddr")) :RESULT
((#<ASN.1:OBJECT-ID IP-MIB::ipAdEntAddr (1) [0]>
#<SNMP::SMI NO-SUCH-OBJECT (0)>)))
(:AGENT
("127.0.0.1" :OIDS
(".iso.org.dod.internet.mgmt.mib-2.system.sysDescr.0") :COMMAND
SNMP-ASYNC:SNMP-GET-ASYNC)
:RESULT
((#<ASN.1:OBJECT-ID SNMPv2-MIB::sysDescr.0>
"Linux hostname 2.6.28-4-generic #11-Ubuntu SMP Fri Jan 16 21:50:52 UTC 2009 x86_64")))
(:AGENT ("127.0.0.1" :PORT 12312 :OIDS ("ipAdEntAddr")) :ERROR
("[ECONNREFUSED:111] Connection refused, reported from 127.0.0.1")))
The API is documented.
git clone http://cl-www.msi.co.jp/projects/snmp-async/snmp-async.git