Simple Network Management Protocol (SNMP) 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.
This is a curated list of awesome SNMP libraries, tools, and other resources. Contributions are welcome!
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.
The AgentX++ C++ framework provides a complete AgentX protocol (RFC 2741) implementation that adds AgentX master and sub-agent support to AGENT++ (`Commercial`).
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.
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 project's lifecycle, but it is easy to use and ___extremely___ fast, especially when querying many devices. 
Net-SNMP 5.4 and later contains Python bindings in the "python" sub-directory, though, they are not built by default. 
A fork of [net-snmp Python bindings](http://www.net-snmp.org/wiki/index.php/Python_Bindings) that attempts to bring a more Pythonic interface to the library. 
Snimpy is a Python-based tool providing a simple interface to build SNMP query. 
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. 
Python package aiosnmp is an asynchronous SNMP client for use with asyncio. Only SNMP v2c is supported. 
SNMPLibrary is a Robot Framework test library for testing SNMP. 
Packet manipulation program & library. Scapy has a [module](https://github.com/secdev/scapy/blob/master/scapy/layers/snmp.py) to build/dissect SNMP packets. 
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.
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 (`Commercial`).
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.
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 [here](https://snmplabs.thola.io/snmpclitools/) for more details.
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.
snmptranslate - Translates MIB OID names between numeric and textual forms.
snmpget - Communicates with a network entity using SNMP GET requests.
snmpgetnext - Communicates with a network entity using SNMP GETNEXT requests.
snmpbulkget - Communicates with a network entity using SNMP GETBULK requests.
snmpwalk - Retrieves a subtree of management values using SNMP GETNEXT requests.
snmpbulkwalk - Retrieves a subtree of management values using SNMP GETBULK requests.
snmpset - Communicates with a network entity using SNMP SET requests.
snmptest - Communicates with a network entity using SNMP requests.
snmptable - Retrieve an SNMP table and display it in tabular form.
snmpdelta - Monitor delta differences in SNMP Counter values.
snmpusm - Manipulates the SNMPv3 User-based-security user table.
snmpvacm - Manipulates the SNMPv3 View-based-access-control-module configuration tables.
snmpstatus - Retrieves a fixed set of management information from a network entity.
snmpnetstat - Display networking status and configuration information from a network entity via SNMP.
snmpdf - Displays disk information like the unix df tool using information collected from SNMP.
snmptrap - Sends SNMP TRAP or INFORM notification messages.
snmpinform - Send INFORM notification messages. snmpinform command is functionally the same as snmptrap -Ci.
snmptrapd - An SNMP daemon that listens for SNMP TRAPs or INFORMs and logs or acts upon them.
traptoemail - This an snmptrapd handler script to convert snmp traps into emails.
net-snmp-config - Returns information about installed net-snmp libraries and binaries.
snmpconf - Creates and modifies SNMP configuration files.
fixproc - Fixes a process by performing the specified action.
snmpd - An SNMP agent that responds to SNMP requests for a given host.
mib2c - A MIB conversion utility that can translate MIB structures into other forms, such as C-code.
mib2c-update - This a script to merge custom code into updated mib2c code.
smilint - 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.
smidump - 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.
smidiff - This is a tool that parses two revisions of a MIB module and analyzes the modifications from the old to the new revision.
smiquery - This is a MIB/PIB query front end. It can be used to query single items from the command line.
smistrip - This is a simple shell/awk script that allows to extract MIB and PIB modules from documents, such as RFCs or Internet Drafts.
snmptt - 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.
snmpttconvert - 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.
snmpttconvertmib - 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.
A family of modern SNMP products, featuring cross-platform MIB Designer/Compiler/Browser within VS Code, full v1/v2c/v3 coverage, MIB/SMI v1 and v2 support, as well as emulator and MCP bridge to AI tools. Commercial and open source .NET libraries are included too.
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 agent's data, or make changes to the agent. Free for personal use.
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.
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.
The Simple Network Management Protocol, SNMP, empowers you to invoke ancient standards from the void. SNMP exposes the secrets of your network and servers, and--if you're careless--reconfigures them into unspeakable nightmares. It exposes your inadequate brain to the vast alien dimensions underlying modern computing.
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.
This Wiki page contains various tutorials ranging from the basics of SNMP protocol to implementation of SNMP applications and agents using net-snmp library.
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.