snmp-async

A Common Lisp library for quickly accessing many SNMP servers in parallel

Introduction

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.

Contact

Email John Fremlin at MSI. His address is jf@[the domain without www].

View or edit the Cliki entry.

Using it

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.

Downloads

Downloads

Git development tree access

git clone http://cl-www.msi.co.jp/projects/snmp-async/snmp-async.git