Files
awesome-awesomeness/html/snmp.html
2025-07-18 22:22:32 +02:00

651 lines
30 KiB
HTML
Raw Permalink Blame History

This file contains invisible Unicode characters
This file contains invisible Unicode characters that are indistinguishable to humans but may be processed differently by a computer. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
<!--lint disable double-link-->
<h1 id="awesome-snmp-awesome">Awesome SNMP <a
href="https://awesome.re"><img src="https://awesome.re/badge.svg"
alt="Awesome" /></a></h1>
<p><a
href="https://github.com/eozer/awesome-snmp/actions/workflows/awesome-lint.yml"><img
src="https://github.com/eozer/awesome-snmp/actions/workflows/awesome-lint.yml/badge.svg"
alt="Awesome lint" /></a></p>
<p><a
href="https://en.wikipedia.org/wiki/Simple_Network_Management_Protocol">Simple
Network Management Protocol (SNMP)</a> is an Internet Standard protocol
for collecting and organizing information about managed devices on IP
networks and for modifying that information to change device
behaviour.</p>
<p>This is a curated list of awesome SNMP libraries, tools, and other
resources. Contributions are welcome!</p>
<h2 id="contents">Contents</h2>
<ul>
<li><a href="#libraries">Libraries</a>
<ul>
<li><a href="#cc">C/C++</a></li>
<li><a href="#c">C#</a></li>
<li><a href="#erlang">Erlang</a></li>
<li><a href="#go">Go</a></li>
<li><a href="#java">Java</a></li>
<li><a href="#javascript">JavaScript</a></li>
<li><a href="#lua">Lua</a></li>
<li><a href="#php">PHP</a></li>
<li><a href="#python">Python</a></li>
<li><a href="#ruby">Ruby</a></li>
<li><a href="#rust">Rust</a></li>
</ul></li>
<li><a href="#tools">Tools</a>
<ul>
<li><a href="#clis">CLIs</a></li>
<li><a href="#guis">GUIs</a></li>
</ul></li>
<li><a href="#publications">Publications</a>
<ul>
<li><a href="#books">Books</a></li>
<li><a href="#rfcs">RFCs</a></li>
<li><a href="#tutorials">Tutorials</a></li>
</ul></li>
<li><a href="#public-servers">Public servers</a></li>
<li><a href="#mib-repositories">MIB repositories</a></li>
<li><a href="#miscellaneous">Miscellaneous</a></li>
</ul>
<h2 id="libraries">Libraries</h2>
<p><em>Helpful to write SNMP applications.</em></p>
<h3 id="cc">C/C++</h3>
<ul>
<li><a href="http://www.net-snmp.org/">net-snmp</a> - A suite of
software for using and deploying the SNMP protocol (v1, v2c and v3 and
the AgentX subagent protocol). Contains also Python bindings.</li>
<li><a href="https://www.agentpp.com/api/cpp/snmp_pp.html">SNMP++</a> -
BSD licensed SNMP implemention from HP. Supports SNMP v1/2c/v3,
thread-safety, and many more.</li>
<li><a href="https://www.agentpp.com/api/cpp/agent_pp.html">AGENT++</a>
- The AGENT++ C++ framework provides a complete tri-lingual SNMP v1/2c/3
protocol engine and dispatcher for the development of SNMP agents.
Apache licensed.</li>
<li><a
href="https://www.agentpp.com/api/cpp/agentx_pp.html">AgentX++</a> - The
AgentX++ C++ framework provides a complete AgentX protocol (RFC 2741)
implementation that adds AgentX master and sub-agent support to AGENT++
(<code>Commercial</code>).</li>
<li><a href="https://sourceforge.net/projects/opensnmp/">openSNMP</a> -
BSD licensed multi-threaded implementation of SNMPv3.</li>
</ul>
<h3 id="c">C</h3>
<ul>
<li><a href="https://github.com/lextudio/sharpsnmplib">C# SNMP
Library</a> - MIT licensed SNMP library for .NET with extensive SNMP
standard support, latest .NET platform targets, as well as rich
manager/agent samples.</li>
<li><a href="https://pro.sharpsnmp.com">SNMP Pro</a> - Commercial
extension that adds enterprise MIB support.</li>
<li><a href="https://github.com/rqx110/SnmpSharpNet">SnmpSharpNet</a> -
Simple Network Management Protocol (SNMP) .Net library written in C#
(csharp). Implements protocol version 1, 2 and 3.</li>
</ul>
<h3 id="erlang">Erlang</h3>
<ul>
<li><a
href="https://www.erlang.org/doc/apps/snmp/users_guide.html">Erlang/OTP
SNMP</a> - SNMP development is included as a component of the
Erlang/Open Telecom Platform development environment.</li>
</ul>
<h3 id="go">Go</h3>
<ul>
<li><a href="https://github.com/gosnmp/gosnmp">gosnmp/gosnmp</a> - An
SNMP library written in Go. It provides Get, GetNext, GetBulk, Walk,
BulkWalk, Set and Traps. It supports IPv4/IPv6, using SNMP
v1/v2c/v3.</li>
<li><a
href="https://github.com/sleepinggenius2/gosmi">sleepinggenius2/gosmi</a>
- MIB parser in Go language.</li>
<li><a href="https://github.com/posteo/go-agentx">posteo/go-agentx</a> -
A library with a pure Go implementation of the AgentX-Protocol.</li>
</ul>
<h3 id="java">Java</h3>
<ul>
<li><a href="https://www.agentpp.com/api/java/snmp4j.html">SNMP4J</a> -
SNMP4J is an enterprise class, free open source, and state-of-the-art
SNMP v1/2c/v3 implementation for Java™.</li>
<li><a
href="https://www.agentpp.com/api/java/snmp4jagent.html">SNMP4J-Agent</a>
- SNMP4J-Agent is a Java™ API on top of the core SNMP4J API for the
development of SNMP agents (command responders).</li>
<li><a href="https://sourceforge.net/projects/joesnmp/">joeSNMP</a> -
joeSNMP is an open-source Java SNMP class library published under the
LGPL.</li>
<li><a href="https://snmp.westhawk.co.uk/">Westhawks SNMP</a> - An
open-sourced Java library that can be used for SNMP v1/v2c/v3. Supports
traps, authentication and privacy. As authentication protocols it offers
MD5 and SHA1.</li>
<li><a href="https://github.com/cederberg/mibble">mibble</a> - Mibble is
an open-source SNMP MIB (or SMI) parser library for Java.</li>
</ul>
<h3 id="javascript">JavaScript</h3>
<ul>
<li><a
href="https://github.com/markabrahams/node-net-snmp">node-net-snmp</a> -
JavaScript implementation of the Simple Network Management Protocol
(SNMP), implements versions 1, 2c and 3.</li>
<li><a
href="https://github.com/calmh/node-snmp-native">node-snmp-native</a> -
Native JavaScript SNMP library for Node.js.</li>
<li><a href="https://github.com/joyent/node-snmpjs">node-snmpjs</a> -
This package provides a toolkit for SNMP agents and management
applications in Node.js.</li>
<li><a href="https://github.com/neias/snmp-node">snmp-node</a> - Native
JavaScript SNMP library for Node.js.</li>
</ul>
<h3 id="lua">Lua</h3>
<ul>
<li><a href="https://github.com/hleuwer/luasnmp">luasnmp</a> - Lua
binding to net-snmp library.</li>
</ul>
<h3 id="php">PHP</h3>
<ul>
<li><a
href="https://www.php.net/manual/en/book.snmp.php">php.net/SNMP</a> -
This is an SNMP extension for PHP, which is a wrapper around the
net-snmp library.</li>
<li><a href="https://github.com/FreeDSx/SNMP">FreeDSx/SNMP</a> - A Pure
PHP SNMP Library.</li>
<li><a
href="https://github.com/opensolutions/OSS_SNMP">opensolutions/OSS_SNMP</a>
- A PHP SNMP library for people who hate SNMP, MIBs and OIDs!</li>
</ul>
<h3 id="python">Python</h3>
<ul>
<li><a href="https://github.com/lextudio/pysnmp">pysnmp</a> - This is a
pure-Python, open source and free implementation of v1/v2c/v3 SNMP
engine distributed under 2-clause BSD license.
<ul>
<li>This project is derived from <a
href="https://github.com/etingof/pysnmp">the original repo</a>.</li>
</ul></li>
<li><a href="https://github.com/lextudio/pysmi">pysmi</a> - PySMI is a
pure-Python implementation of SNMP SMI MIB parser.
<ul>
<li>This project is derived from <a
href="https://github.com/etingof/pysmi">the original repo</a>.</li>
</ul></li>
<li><a href="https://github.com/gufolabs/gufo_snmp">gufo_snmp</a> - The
accelerated Python SNMP client library supporting both async and
synchronous mode. It consists of a clean Python API for high-efficient
BER parser and socket IO, implemented in the Rust language with PyO3
wrapper. Seems to be a bit early in the projects lifecycle, but it is
easy to use and <strong><em>extremely</em></strong> fast, especially
when querying many devices. <img
src="https://img.shields.io/github/last-commit/gufolabs/gufo_snmp"
alt="GitHub last commit" /></li>
<li><a
href="http://www.net-snmp.org/wiki/index.php/Python_Bindings">net-snmp
Python bindings</a> - Net-SNMP 5.4 and later contains Python bindings in
the “python” sub-directory, though, they are not built by default. <img
src="https://img.shields.io/github/last-commit/net-snmp/net-snmp"
alt="GitHub last commit" /></li>
<li><a href="https://github.com/easysnmp/easysnmp">easysnmp</a> - A fork
of <a
href="http://www.net-snmp.org/wiki/index.php/Python_Bindings">net-snmp
Python bindings</a> that attempts to bring a more Pythonic interface to
the library. <img
src="https://img.shields.io/github/last-commit/easysnmp/easysnmp"
alt="GitHub last commit" /></li>
<li><a href="https://github.com/exhuma/puresnmp">puresnmp</a> - Pure
Python3 SNMPv2 library without any dependencies. <img
src="https://img.shields.io/github/last-commit/exhuma/puresnmp"
alt="GitHub last commit" /></li>
<li><a href="https://github.com/vincentbernat/snimpy">snimpy</a> -
Snimpy is a Python-based tool providing a simple interface to build SNMP
query. <img
src="https://img.shields.io/github/last-commit/vincentbernat/snimpy"
alt="GitHub last commit" /></li>
<li><a
href="https://github.com/pief/python-netsnmpagent">python-netsnmpagent</a>
- This package allows to write net-snmp subagents in Python. <img
src="https://img.shields.io/github/last-commit/pief/python-netsnmpagent"
alt="GitHub last commit" /></li>
<li><a href="https://github.com/trehn/hnmp">hnmp</a> - HNMP is a
high-level Python library to ease the pain of retrieving and processing
data from SNMP-capable devices such as network switches, routers, and
printers. <img
src="https://img.shields.io/github/last-commit/trehn/hnmp"
alt="GitHub last commit" /></li>
<li><a href="https://github.com/hh-h/aiosnmp">aiosnmp</a> - Python
package aiosnmp is an asynchronous SNMP client for use with asyncio.
Only SNMP v2c is supported. <img
src="https://img.shields.io/github/last-commit/hh-h/aiosnmp"
alt="GitHub last commit" /></li>
<li><a
href="https://github.com/kontron/robotframework-snmplibrary">robotframework-snmplibrary</a>
- SNMPLibrary is a Robot Framework test library for testing SNMP. <img
src="https://img.shields.io/github/last-commit/kontron/robotframework-snmplibrary"
alt="GitHub last commit" /></li>
<li><a href="https://github.com/secdev/scapy">Scapy</a> - Packet
manipulation program &amp; library. Scapy has a <a
href="https://github.com/secdev/scapy/blob/master/scapy/layers/snmp.py">module</a>
to build/dissect SNMP packets. <img
src="https://img.shields.io/github/last-commit/secdev/scapy"
alt="GitHub last commit" /></li>
</ul>
<h3 id="ruby">Ruby</h3>
<ul>
<li><a href="https://github.com/swisscom/ruby-netsnmp">ruby-netsnmp</a>
- SNMP library in ruby (v1, v2c, v3).</li>
</ul>
<h3 id="rust">Rust</h3>
<ul>
<li><a href="https://github.com/rusticata/snmp-parser">snmp-parser</a> -
SNMP parser written in rust with nom parser combinator framework.</li>
<li><a
href="https://github.com/davedufresne/modern_snmp">davedufresne/modern_snmp</a>
- Modern SNMP is a pure-Rust library for SNMPv3. This repository
includes snmp_mp (SNMPv3 Message Processing) and snmp_usm
(Implementation of the User-based Security Model (USM) for SNMPv3)
crates.</li>
<li><a href="https://github.com/Svedrin/sunt">Svedrin/sunt</a> - This
repository implements an SNMP Agent written in Rust.</li>
</ul>
<p><strong><a href="#contents">⬆ back to top</a></strong></p>
<h2 id="tools">Tools</h2>
<p><em>You use these to work with SNMP easier.</em></p>
<h3 id="clis">CLIs</h3>
<ul>
<li><a href="http://www.net-snmp.org/">net-snmp tools</a> - The
applications listed here are part of net-snmp.
<ul>
<li><a
href="http://www.net-snmp.org/docs/man/encode_keychange.html">encode_keychange</a>
- Produces the KeyChange string for SNMPv3.</li>
<li><a
href="http://www.net-snmp.org/docs/man/snmptranslate.html">snmptranslate</a>
- Translates MIB OID names between numeric and textual forms.</li>
<li><a href="http://www.net-snmp.org/docs/man/snmpget.html">snmpget</a>
- Communicates with a network entity using SNMP GET requests.</li>
<li><a
href="http://www.net-snmp.org/docs/man/snmpgetnext.html">snmpgetnext</a>
- Communicates with a network entity using SNMP GETNEXT requests.</li>
<li><a
href="http://www.net-snmp.org/docs/man/snmpbulkget.html">snmpbulkget</a>
- Communicates with a network entity using SNMP GETBULK requests.</li>
<li><a
href="http://www.net-snmp.org/docs/man/snmpwalk.html">snmpwalk</a> -
Retrieves a subtree of management values using SNMP GETNEXT
requests.</li>
<li><a
href="http://www.net-snmp.org/docs/man/snmpbulkwalk.html">snmpbulkwalk</a>
- Retrieves a subtree of management values using SNMP GETBULK
requests.</li>
<li><a href="http://www.net-snmp.org/docs/man/snmpset.html">snmpset</a>
- Communicates with a network entity using SNMP SET requests.</li>
<li><a
href="http://www.net-snmp.org/docs/man/snmptest.html">snmptest</a> -
Communicates with a network entity using SNMP requests.</li>
<li><a
href="https://net-snmp.sourceforge.io/docs/man/snmptable.html">snmptable</a>
- Retrieve an SNMP table and display it in tabular form.</li>
<li><a
href="https://net-snmp.sourceforge.io/docs/man/snmpdelta.html">snmpdelta</a>
- Monitor delta differences in SNMP Counter values.</li>
<li><a href="http://www.net-snmp.org/docs/man/snmpusm.html">snmpusm</a>
- Manipulates the SNMPv3 User-based-security user table.</li>
<li><a
href="http://www.net-snmp.org/docs/man/snmpvacm.html">snmpvacm</a> -
Manipulates the SNMPv3 View-based-access-control-module configuration
tables.</li>
<li><a
href="https://net-snmp.sourceforge.io/docs/man/snmpstatus.html">snmpstatus</a>
- Retrieves a fixed set of management information from a network
entity.</li>
<li><a
href="https://net-snmp.sourceforge.io/docs/man/snmpnetstat.html">snmpnetstat</a>
- Display networking status and configuration information from a network
entity via SNMP.</li>
<li><a href="http://www.net-snmp.org/docs/man/snmpdf.html">snmpdf</a> -
Displays disk information like the unix df tool using information
collected from SNMP.</li>
<li><a
href="http://www.net-snmp.org/docs/man/snmptrap.html">snmptrap</a> -
Sends SNMP TRAP or INFORM notification messages.</li>
<li><a
href="http://www.net-snmp.org/docs/man/snmptrap.html">snmpinform</a> -
Send INFORM notification messages. snmpinform command is functionally
the same as snmptrap -Ci.</li>
<li><a
href="http://www.net-snmp.org/docs/man/snmptrapd.html">snmptrapd</a> -
An SNMP daemon that listens for SNMP TRAPs or INFORMs and logs or acts
upon them.</li>
<li><a
href="https://net-snmp.sourceforge.io/docs/man/traptoemail.html">traptoemail</a>
- This an snmptrapd handler script to convert snmp traps into
emails.</li>
<li><a
href="https://net-snmp.sourceforge.io/docs/man/net-snmp-config.html">net-snmp-config</a>
- Returns information about installed net-snmp libraries and
binaries.</li>
<li><a
href="https://net-snmp.sourceforge.io/docs/man/snmpconf.html">snmpconf</a>
- Creates and modifies SNMP configuration files.</li>
<li><a
href="https://net-snmp.sourceforge.io/docs/man/fixproc.html">fixproc</a>
- Fixes a process by performing the specified action.</li>
<li><a href="http://www.net-snmp.org/docs/man/snmpd.html">snmpd</a> - An
SNMP agent that responds to SNMP requests for a given host.</li>
<li><a
href="https://net-snmp.sourceforge.io/docs/man/mib2c.html">mib2c</a> - A
MIB conversion utility that can translate MIB structures into other
forms, such as C-code.</li>
<li><a
href="https://net-snmp.sourceforge.io/docs/man/mib2c-update.html">mib2c-update</a>
- This a script to merge custom code into updated mib2c code.</li>
</ul></li>
<li><a href="https://www.agentpp.com/tools/snmp4jclt.html">SNMP4JCLT</a>
- Use the SNMP4J Command Line Tool (CLT) to send SNMPv1/v2c/v3 requests
and traps to a target with IPv4 or v6 based UDP, TCP, or TLSv1,2
transport (<code>Commercial</code>).</li>
<li><a href="https://www.ibr.cs.tu-bs.de/projects/libsmi/">libsmi
tools</a> - Applications built on top of libsmi and an sh/awk script
that are integrated with the libsmi distribution.
<ul>
<li><a
href="https://www.ibr.cs.tu-bs.de/projects/libsmi/smilint.html">smilint</a>
- This is used to check MIB or PIB modules for syntax errors and
semantics at some degree. SMIv1/v2 style MIB modules as well as SPPI PIB
modules are supported.</li>
<li><a
href="https://www.ibr.cs.tu-bs.de/projects/libsmi/smidump.html">smidump</a>
- This is a MIB/PIB compiler. It allows to dump the contents of a module
in various formats: SMIv1, SMIv2, SMIng, SPPI, Import Trees, Type
Definition Trees, OID Node Trees, MOSY Style, and CORBA IDL definitions
according to the JIDM Specs, and others.</li>
<li><a
href="https://www.ibr.cs.tu-bs.de/projects/libsmi/smidiff.html">smidiff</a>
- This is a tool that parses two revisions of a MIB module and analyzes
the modifications from the old to the new revision.</li>
<li><a
href="https://www.ibr.cs.tu-bs.de/projects/libsmi/smiquery.html">smiquery</a>
- This is a MIB/PIB query front end. It can be used to query single
items from the command line.</li>
<li><a
href="https://www.ibr.cs.tu-bs.de/projects/libsmi/smistrip.html">smistrip</a>
- This is a simple shell/awk script that allows to extract MIB and PIB
modules from documents, such as RFCs or Internet Drafts.</li>
</ul></li>
<li><a href="https://github.com/etingof/snmpsim">snmpsim</a> - This is a
pure-Python, open source and free implementation of SNMP agents
simulator distributed under 2-clause BSD license.</li>
<li><a href="https://github.com/etingof/snmpfwd">snmpfwd</a> - The SNMP
Proxy Forwarder tool works as an application-level proxy with a built-in
SNMP message router. Typical use case for an SNMP proxy is to work as an
application-level firewall or a protocol translator that enables SNMPv3
access to a SNMPv1/SNMPv2c entity or vice versa.</li>
<li><a href="https://github.com/etingof/snmpclitools">snmpclitools</a> -
This is a collection of command-line SNMP tools written in pure-Python.
The tools mimic their famous Net-SNMP counterparts. It includes
snmpget.py, snmpset.py, snmpwalk.py, snmpbulkwalk.py, snmptrap.py, and
snmptranslate.py, see <a
href="https://snmplabs.thola.io/snmpclitools/">here</a> for more
details.</li>
<li><a href="https://github.com/hatlord/snmpwn">snmpwn</a> - SNMPwn is
an SNMPv3 user enumerator and attack tool.</li>
<li><a href="https://github.com/dropbox/trapperkeeper">trapperkeeper</a>
- A suite of tools for ingesting and displaying SNMP traps. This is
designed as a replacement for snmptrapd and to supplement existing
stateful monitoring solutions.</li>
<li><a href="http://www.snmptt.org/">SNMP Trap Translator</a> - SNMPTT
(SNMP Trap Translator) is an SNMP trap handler written in Perl for use
with the Net-SNMP / UCD-SNMP snmptrapd program (www.net-snmp.org).
<ul>
<li><a href="http://www.snmptt.org/docs/snmptt.shtml">snmptt</a> -
SNMPTT (SNMP Trap Translator) is an SNMP trap handler written in Perl
for use with the Net-SNMP / UCD-SNMP snmptrapd program
(www.net-snmp.org). SNMPTT supports Linux, Unix and Windows.</li>
<li><a
href="http://www.snmptt.org/docs/snmpttconvert.shtml">snmpttconvert</a>
- Some vendors provide a file that can be imported into HP Openview
using a HP Openview utility. snmpttconvert is a simple Perl script which
will convert one of these files into the format used by snmptt.</li>
<li><a
href="http://www.snmptt.org/docs/temp/snmpttconvertmib.shtml">snmpttconvertmib</a>
- The snmpttconvertmib is a Perl script which will read a MIB file and
convert the TRAP-TYPE (v1) or NOTIFICATION-TYPE (v2) definitions into a
configuration file readable by snmptt.</li>
</ul></li>
<li><a
href="https://github.com/prometheus/snmp_exporter">prometheus/snmp_exporter</a>
- This exporter is the recommended way to expose SNMP data in a format
which Prometheus can ingest.</li>
<li><a
href="https://github.com/trailofbits/onesixtyone">trailofbits/onesixtyone</a>
- Fast SNMP Scanner.</li>
<li><a
href="https://github.com/SECFORCE/SNMP-Brute">SECFORCE/SNMP-Brute</a> -
Fast SNMP brute force, enumeration, CISCO config downloader and password
cracking script.</li>
<li><a href="https://github.com/hatlord/snmpwn">hatlord/snmpwn</a> - An
SNMPv3 User Enumerator and Attack tool.</li>
<li><a
href="https://github.com/zabbix-tools/mib2zabbix">zabbix-tools/mib2zabbix</a>
- This Perl script will generate a Zabbix v3 Template in XML format from
an OID tree in a SNMP MIB file.</li>
<li><a href="https://github.com/patrickscottbest/OIDrage">OIDrage</a> -
A lightweight standalone SNMPd mimic server based on any snmpwalk
output. Easily scales to mock thousands of servers.</li>
</ul>
<h3 id="guis">GUIs</h3>
<ul>
<li><a href="http://www.net-snmp.org/">tkmib</a> - A perl/Tk interactive
graphical MIB browser for SNMP.</li>
<li><a href="https://www.agentpp.com/tools/mibdesigner.html">agentpp/MIB
Designer</a> - Use MIB Designer to create, edit, manage, and explore SMI
specifications (<code>Commercial</code>).</li>
<li><a href="https://www.agentpp.com/tools/mibexplorer.html">agentpp/MIB
Explorer Pro</a> - Use MIB Explorer to browse, configure,
test&amp;debug, monitor, and discover SNMPv1/2c/3 entities.</li>
<li><a href="https://www.sharpsnmp.com/">sharpsnmp/SNMP Pro</a> - A
family of .NET based SNMP products, including the commercial MIB
Compiler, MIB Assembly, and the open source Library.</li>
<li><a
href="https://www.paessler.com/tools/snmptester">paessler/snmptester</a>
- This tool enables you to debug SNMP activities to find communication
and/or data issues in SNMP monitoring configurations. Windows.</li>
<li><a href="http://ireasoning.com/mibbrowser.shtml">ireasoning/MIB
Browser</a> - This tool allows users to load standard, proprietary MIBs,
and even some mal-formed MIBs. It also allows them to issue SNMP
requests to retrieve agents data, or make changes to the agent. Free
for personal use.</li>
<li><a href="http://ireasoning.com/snmpsimulator.shtml">ireasoning/SNMP
Agent Simulator</a> - Free SNMP Agent Simulator Java based application
that can simulate SNMPv1/v2c/v3 agents.</li>
<li><a href="https://github.com/sisraell/VisualSNMP">Visual SNMP</a> -
Visual SNMP is a simple tool for testing access to SNMP agents.
Currently SNMPGET and SNMPWALK are supported with some limited
funcionality.</li>
<li><a href="http://www.muonics.com/Tools/smicheck.php">muonics/Online
MIB validator</a> - Free online MIB/PIB Validator based on MIB Smithy
SDK.</li>
<li><a
href="https://github.com/toni-moreno/snmpcollector">toni-moreno/snmpcollector</a>
- SnmpCollector is a full featured Generic SNMP data collector with Web
Administration Interface Open Source tool which has as main goal
simplify the configuration for getting data from any device which snmp
protocol support and send resulting data to an influxdb backend.</li>
<li><a
href="https://www.unleashnetworks.com/products/unbrowse-snmp.html">Unbrowse
SNMP</a> - Unbrowse SNMP is a tool that helps to compile cryptic MIB
files into an easy GUI view, retrieve and set MIB variables on devices,
import snmpwalk dumps, receive traps, chart counters, and much
more.</li>
</ul>
<p><strong><a href="#contents">⬆ back to top</a></strong></p>
<h2 id="publications">Publications</h2>
<p><em>How-tos, tutorials, blog posts, documentation and
books.</em></p>
<h3 id="books">Books</h3>
<ul>
<li><a href="https://mwl.io/nonfiction/networking#networknomicon">The
Networknomicon, or SNMP Mastery by Abdul Alhazred and Michael W.
Lucas</a> - The Simple Network Management Protocol, SNMP, empowers you
to invoke ancient standards from the void. SNMP exposes the secrets of
your network and servers, andif youre carelessreconfigures them into
unspeakable nightmares. It exposes your inadequate brain to the vast
alien dimensions underlying modern computing.</li>
<li><a href="https://mwl.io/nonfiction/networking#snmp">SNMP Mastery by
Michael W. Lucas</a> - SNMP, Simple Network Management Protocol, Four
lies in one acronym?</li>
<li><a
href="https://www.amazon.com/SNMP-MIB-Handbook-Larry-Walsh/dp/0981492207">SNMP
MIB Handbook by Larry Walsh</a> - Essential Guide to SNMP MIB
Development, Use, and Diagnosis.</li>
<li><a
href="https://www.amazon.com/Essential-SNMP-System-Network-Administrators-ebook/dp/B0043EWUZ2">Mauro,
D. and Schmidt, K., 2005. Essential SNMP: Help for System and Network
Administrators. ” OReilly Media, Inc.”.</a> - Essential SNMP explores
both commercial and open source packages, and elements like OIDs, MIBs,
community strings, and traps are covered in depth. The book contains
five new chapters and various updates throughout.</li>
<li><a
href="https://www.amazon.com/Snmp-Snmpv2-Snmpv3-William-Stallings/dp/0201485346">Snmp,
Snmpv2, Snmpv3, and Rmon 1 and 2 by William Stallings</a> - Presents a
concise, focused &amp; practical guide to SNMP-based network &amp;
internetwork management for network administrators, managers, &amp;
designers.</li>
<li><a
href="https://www.amazon.com/Understanding-SNMP-MIBs-David-Perkins/dp/0134377087">Perkins,
D. and McGinnis, E., 1997. Understanding SNMP MIBs (p. 528). Englewood
Cliffs: Prentice Hall PTR.</a> - The first complete, practical insiders
guide to writing SNMP MIBs.</li>
</ul>
<h3 id="rfcs">RFCs</h3>
<ul>
<li><a href="https://tools.ietf.org/rfc/rfc1098.txt">rfc1098</a> - A
Simple Network Management Protocol (version 1).</li>
<li><a href="https://tools.ietf.org/rfc/rfc1155.txt">rfc1155</a> -
Structure and Identification of Management Information.</li>
<li><a href="https://tools.ietf.org/rfc/rfc2578.txt">rfc2578</a> -
Structure of Management Information Version 2 (SMIv2).</li>
<li><a href="https://tools.ietf.org/rfc/rfc2741.txt">rfc2741</a> - Agent
Extensibility (AgentX) Protocol Version 1.</li>
<li><a href="https://tools.ietf.org/rfc/rfc2742.txt">rfc2742</a> -
Definitions of Managed Objects for Extensible SNMP Agents.</li>
<li><a href="https://tools.ietf.org/rfc/rfc3410.txt">rfc3410</a> -
Introduction and Applicability Statements for Internet Standard
Management Framework.</li>
<li><a href="https://tools.ietf.org/rfc/rfc3411.txt">rfc3411</a> - An
Architecture for Describing Simple Network Management Protocol (SNMP)
Management Frameworks.</li>
<li><a href="https://tools.ietf.org/rfc/rfc3412.txt">rfc3412</a> -
Message Processing and Dispatching for the Simple Network Management
Protocol (SNMP).</li>
<li><a href="https://tools.ietf.org/rfc/rfc3413.txt">rfc3413</a> -
Simple Network Management Protocol (SNMP) Applications.</li>
<li><a href="https://tools.ietf.org/rfc/rfc3414.txt">rfc3414</a> -
User-based Security Model (USM) for version 3 of the Simple Network
Management Protocol (SNMPv3).</li>
<li><a href="https://tools.ietf.org/rfc/rfc3415.txt">rfc3415</a> -
View-based Access Control Model (VACM) for the Simple Network Management
Protocol (SNMP).</li>
<li><a href="https://tools.ietf.org/rfc/rfc3416.txt">rfc3416</a> -
Version 2 of the Protocol Operations for the Simple Network Management
Protocol (SNMP).</li>
<li><a href="https://tools.ietf.org/rfc/rfc3417.txt">rfc3417</a> -
Transport Mappings for the Simple Network Management Protocol
(SNMP).</li>
<li><a href="https://www.ietf.org/rfc/rfc3418.txt">rfc3418</a> -
Management Information Base (MIB) for the Simple Network Management
Protocol (SNMP).</li>
<li><a href="https://tools.ietf.org/rfc/rfc3584.txt">rfc3584</a> -
Coexistence between Version 1, Version 2, and Version 3 of the
Internet-standard Network Management Framework.</li>
<li><a href="https://tools.ietf.org/rfc/rfc3826.txt">rfc3826</a> - The
Advanced Encryption Standard (AES) Cipher Algorithm in the SNMP
User-based Security Model.</li>
<li><a href="https://tools.ietf.org/rfc/rfc4088.txt">rfc4088</a> -
Uniform Resource Identifier (URI) Scheme for the Simple Network
Management Protocol (SNMP).</li>
<li><a href="https://www.rfc-editor.org/rfc/rfc5343.txt">rfc5343</a> -
Simple Network Management Protocol (SNMP) Context EngineID
Discovery.</li>
<li><a href="https://www.rfc-editor.org/rfc/rfc5590.txt">rfc5590</a> -
Transport Subsystem for the Simple Network Management Protocol
(SNMP).</li>
<li><a href="https://www.rfc-editor.org/rfc/rfc5591.txt">rfc5591</a> -
Transport Subsystem for the Simple Network Management Protocol
(SNMP).</li>
<li><a href="https://www.rfc-editor.org/rfc/rfc5592.txt">rfc5592</a> -
Secure Shell Transport Model for the Simple Network Management Protocol
(SNMP).</li>
<li><a href="https://www.rfc-editor.org/rfc/rfc7630.txt">rfc7630</a> -
HMAC-SHA-2 Authentication Protocols in the User-based Security Model
(USM) for SNMPv3.</li>
</ul>
<h3 id="tutorials">Tutorials</h3>
<ul>
<li><a href="http://www.net-snmp.org/wiki/index.php/Tutorials">net-snmp
tutorials</a> - This Wiki page contains various tutorials ranging from
the basics of SNMP protocol to implementation of SNMP applications and
agents using net-snmp library.</li>
</ul>
<p><strong><a href="#contents">⬆ back to top</a></strong></p>
<h2 id="public-servers">Public servers</h2>
<ul>
<li><a href="http://ireasoning.com/pubtest.php">snmp.ireasoning.com</a>
- Free public an SNMP agent for testing purpose.</li>
</ul>
<p><strong><a href="#contents">⬆ back to top</a></strong></p>
<h2 id="mib-repositories">MIB repositories</h2>
<ul>
<li><a
href="https://github.com/hsnodgrass/snmp_mib_archive">hsnodgrass/snmp_mib_archive</a>
- An archive of over 3000 unique SNMP MIBs.</li>
<li><a href="https://github.com/kcsinclair/mibs">kcsinclair/mibs</a> -
Another collection of MIBS used for SNMP. Make sure to clone the
repository to see the full list of MIBs.</li>
<li><a href="http://www.mibdepot.com">mibdepot.com</a> - mibDepot is a
free service to the SNMP community and offers a dictionary of MIBs and a
unique-in-the-industry Search Engine with over 12,000 SNMP MIBs
representing over 1,800,000 MIB object definitions.</li>
<li><a href="http://oid-info.com">oid-info.com</a> - This OID repository
gathers information about Object Identifiers (OIDs), and provides tools
to display, update and search for this information.</li>
<li><a
href="https://blog.michaelfmcnamara.com/mibs/">michaelfmcnamara.com</a>
- Hand-curated list of MIBs by Michael McNamara.</li>
<li><a href="http://www.snmplink.org">snmplink.org/OnLineMIB</a> - This
website shows documentation of a set of MIBs with a built-in MIB viewer.
<ul>
<li><a
href="http://www.snmplink.org/OnLineMIB/Standards/">OnLineMIB/Standards</a>
- Standard: (ATM Forum, IANA, RFC) - RFC1065-5324.</li>
<li><a
href="http://www.snmplink.org/OnLineMIB/Cisco/">OnLineMIB/Cisco</a> -
Cisco.</li>
<li><a
href="http://www.snmplink.org/OnLineMIB/Juniper/">OnLineMIB/Juniper</a>
- Juniper.</li>
<li><a
href="http://www.snmplink.org/OnLineMIB/Extreme/">OnLineMIB/Extreme</a>
- Extreme.</li>
<li><a
href="http://www.snmplink.org/OnLineMIB/Brocade/">OnLineMIB/Brocade</a>
- Brocade.</li>
</ul></li>
<li><a
href="http://www.oidview.com/mibs/detail.html">oidview.com/mibs</a> -
This repository contains over 7000 unique MIBs from various
vendors.</li>
</ul>
<p><strong><a href="#contents">⬆ back to top</a></strong></p>
<h2 id="miscellaneous">Miscellaneous</h2>
<p><em>Items that belong on the list but difficult to classify.</em></p>
<ul>
<li><a href="http://snmplink.org/">SNMPLink.org</a> - SNMPlink.org
provides links and information about SNMP, MIB (Management Information
Base), Network Management and Network Monitoring.</li>
<li><a href="https://www.snmptools.net/">SNMPTools.net</a> -
SNMPTools.net provides links and information about SNMP applications,
toolkits, gateways, simulators, MIB browsers and many more.</li>
</ul>
<p><strong><a href="#contents">⬆ back to top</a></strong></p>
<h2 id="contributing">Contributing</h2>
<p>Please take a quick look at the <a
href="contributing.md">contribution guidelines</a> first. Thank you to
all contributors.</p>
<p><a href="https://github.com/eozer/awesome-snmp">snmp.md
Github</a></p>