SNMP Simulator
This is a pure-Python, open source and free implementation of SNMP agents simulator distributed under 2-clause BSD license.
Features
- SNMPv1/v2c/v3 support
- SNMPv3 USM supports MD5/SHA/SHA224/SHA256/SHA384/SHA512 auth and DES/3DES/AES128/AES192/AES256 privacy crypto algorithms
- Runs over IPv4 and/or IPv6 transports
- Simulates many EngineID's, each with its own set of simulated objects
- Varies response based on SNMP Community, Context, source/destination addresses and ports
- Can gather and store snapshots of SNMP Agents for later simulation
- Can run simulation based on MIB files, snmpwalk and sapwalk output
- Can gather simulation data from network traffic or tcpdump snoops
- Can gather simulation data from external program invocation or a SQL database
- Can trigger SNMP TRAP/INFORMs on SET operations
- Capable to simultaneously simulate tens of thousands of Agents
- Offers REST API based control plane
- Gathers and reports extensive activity metrics
- Pure-Python, easy to deploy and highly portable
- Can be extended by loadable Python snippets
Download
SNMP simulator software is freely available for download from PyPI and project site.
Installation
Just run:
$ pip install snmpsim
How to use SNMP simulator
Once installed, invoke snmpsim-command-responder and point it to a directory
with simulation data:
$ snmpsim-command-responder --data-dir=./data --agent-udpv4-endpoint=127.0.0.1:1024
Simulation data is stored in simple plaint-text files having OID|TYPE|VALUE format:
$ cat ./data/public.snmprec
1.3.6.1.2.1.1.1.0|4|Linux 2.6.25.5-smp SMP Tue Jun 19 14:58:11 CDT 2007 i686
1.3.6.1.2.1.1.2.0|6|1.3.6.1.4.1.8072.3.2.10
1.3.6.1.2.1.1.3.0|67|233425120
1.3.6.1.2.1.2.2.1.6.2|4x|00127962f940
1.3.6.1.2.1.4.22.1.3.2.192.21.54.7|64x|c3dafe61
...
Simulator maps query parameters like SNMP community names, SNMPv3 contexts or IP addresses into data files.
You can immediately generate simulation data file by querying existing SNMP agent:
$ snmpsim-record-commands --agent-udpv4-endpoint=demo.pysnmp.com \
--output-file=./data/public.snmprec
SNMP version 2c, Community name: public
Querying UDP/IPv4 agent at 195.218.195.228:161
Agent response timeout: 3.00 secs, retries: 3
Sending initial GETNEXT request for 1.3.6 (stop at <end-of-mib>)....
OIDs dumped: 182, elapsed: 11.97 sec, rate: 7.00 OIDs/sec, errors: 0
Alternatively, you could build simulation data from a MIB file:
$ snmpsim-record-mibs --output-file=./data/public.snmprec \
--mib-module=IF-MIB
# MIB module: IF-MIB, from the beginning till the end
# Starting table IF-MIB::ifTable (1.3.6.1.2.1.2.2)
# Synthesizing row #1 of table 1.3.6.1.2.1.2.2.1
...
# Finished table 1.3.6.1.2.1.2.2.1 (10 rows)
# End of IF-MIB, 177 OID(s) dumped
Or even sniff on the wire, recover SNMP traffic there and build simulation data from it.
Besides static files, SNMP simulator can be configured to call its plugin modules for simulation data. We ship plugins to interface SQL and noSQL databases, file-based key-value stores and other sources of information.
Besides stand-alone deployment described above, third-party
SNMP Simulator control plane
project offers REST API managed mass deployment of multiple snmpsim-command-responder
instances.
Documentation
Detailed information on SNMP simulator usage could be found at snmpsim site.
Development
For local development, this repository includes helper scripts in the scripts/ directory:
python scripts/prepare.py [version]- Set up development environment with specified Python versionpython scripts/build.py- Build the packagepython scripts/tests.py [--coverage]- Run tests with optional coverage reporting
With uv, these scripts automatically handle virtual environment creation, dependency installation, and build processes.
Getting help
If something does not work as expected, open an issue at GitHub or post your question on Stack Overflow.
Feedback and collaboration
Bug reports, fixes, suggestions, improvements, and your pull requests are very welcome!
Copyright (c) 2010-2019, Ilya Etingof. Copyright (c) 2022-2026, LeXtudio Inc.. All rights reserved.
Metadata
Release files for snmpsim 1.2.2
For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.
Source distribution (sdist)
| File | Size | Uploaded | Provenance | Actions |
|---|---|---|---|---|
| snmpsim-1.2.2.tar.gz | 245.0 kB | Without provenance | Details for snmpsim-1.2.2.tar.gz |
Built distribution (wheel)
| File | Interpreter | ABI | Platform | Actions Reset |
|---|---|---|---|---|
| snmpsim-1.2.2-py3-none-any.whl | Python 3 | none | any | Details for snmpsim-1.2.2-py3-none-any.whl |
Total release size: 471.8 kB
Release files / snmpsim-1.2.2.tar.gz
| Download URL | snmpsim-1.2.2.tar.gz |
|---|---|
| Size | 245.0 kB |
| Tags | Source |
|
SHA-256 checksum How to use checksums |
392ff37e29f788ec54669d5bd7d091b0d7100fd865428a6dde904176ea68d2d9
|
|
BLAKE2b-256 checksum How to use checksums |
2bbb2d0f5289a28a44e9dc3b767af7987ce81421cdaf8098d3211fbd8f2146b9
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
uv/0.9.5
|
Release files / snmpsim-1.2.2-py3-none-any.whl
| Download URL | snmpsim-1.2.2-py3-none-any.whl |
|---|---|
| Size | 226.8 kB |
| Tags | Python 3 |
|
SHA-256 checksum How to use checksums |
db4a0f64f6a61f38c24cc5fc55573c454ea11494c914088840fae8bad677fdd1
|
|
BLAKE2b-256 checksum How to use checksums |
89c99cc00719787dc69812950a2a355c903aa9d94bc506dd80a8683398e3ca40
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
uv/0.9.5
|
Security for snmpsim 1.2.2
Provenance
Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.
No provenance found
None of the files in this release were uploaded with provenance metadata.
A note on package security
PyPI is a repository for distributing packages, not a service for auditing them. While third-party security researchers and our staff do their best to detect and remove malicious packages, PyPI cannot guarantee the quality, security or suitability of any given package.
To learn more about protecting yourself from malicious actors, visit our package security documentation.