# SNMP library for Python

PySNMP is a cross-platform, pure-Python SNMP engine implementation. It features fully-functional SNMP engine capable to act in Agent/Manager/Proxy roles, talking SNMP v1/v2c/v3 protocol versions over IPv4/IPv6 and other network transports.

Despite its name, SNMP is not really a simple protocol. For instance its third version introduces complex and open-ended security framework, multilingual capabilities, remote configuration and other features. PySNMP implementation closely follows intricate system details and features bringing most possible power and flexibility to its users.

Current PySNMP stable version is 4.4. It runs with Python 2.4 through 3.7 and is recommended for new applications as well as for migration from older, now obsolete, PySNMP releases. All site documentation and examples are written for the 4.4 and later versions in mind. Older materials are still available under the obsolete section.

Besides the libraries, a set of pure-Python command-line tools are shipped along with the system. Those tools mimic the interface and behaviour of popular Net-SNMP snmpget/snmpset/snmpwalk utilities. They may be useful in a cross-platform situations as well as a testing and prototyping instrument for pysnmp users.

PySNMP software is free and open-source. Source code is hosted in a Github repo. The library is being distributed under 2-clause BSD-style license.

PySNMP library development has been initially sponsored by a PSF grant.

## Quick start

You already know something about SNMP and have no courage to dive into this implementation? Try out quick start page!

- Quick start
  - Fetch SNMP variable
  - Send SNMP TRAP

## Documentation

- Documentation
  - SNMP history
  - SNMP design
  - PySNMP architecture
  - Common operations
- Library reference
  - Synchronous SNMP
  - Asynchronous: asyncore
  - Asynchronous: asyncio
  - Asynchronous: trollius
  - Asynchronous: Twisted
  - SNMP Engine
  - Security Parameters
  - SNMP Context
  - MIB services
  - SNMP base types

## Examples

- Example scripts
  - High-level SNMP
  - Native SNMP API
  - Packet-level SNMP
  - Low-level MIB access
  - Using these examples

## Download

Best way is usually to

    # pip install pysnmp

If that does not work for you for some reason, you might need to read the following page.

- Download PySNMP

## License

- License

## FAQ

- FAQ
  - Getting peer address information
  - How to implement MIB at the Agent
  - Ignored SNMP packets
  - Listening on multiple network interfaces
  - Garbaged SNMP values (apps)
  - Garbaged SNMP values (tools)
  - Dealing with the “OID not increasing” error
  - How to pass MIB to the Manager
  - My py2exe app can’t find MIBs
  - Resolve response values at MIB
  - SNMP data constraints verification error
  - Walking whole MIB

## Further development

We fanatically document all fixes, changes and new features in changelog. There you could also download the latest unreleased pysnmp tarball containing the latest fixes and improvements.

- Changelog

Our development plans and new features we consider for eventual implementation are collected in the following section.

- Further development
  - PySNMP library
  - Stand-alone PySNMP-based tools

## Contact

In case of questions or troubles using PySNMP, please open up an issue at GitHub or ask at Stack Overflow .

## Old site archive

- Old site archive