interactive SNMP tool
Interactive SNMP tool.
Snimpy is a Python-based tool providing a simple interface to build SNMP query. Here is a very simplistic example that allows us to display the routing table of a given host:
load("IP-FORWARD-MIB") m=M("localhost", "public", 2) routes = m.ipCidrRouteNextHop for x in routes: net, netmask, tos, src = x print("%15s/%-15s via %-15s src %-15s" % (net, netmask, routes[x], src))
You can either use Snimpy interactively throught its console (derived from Python own console or from IPython if available) or write Snimpy scripts which are just Python scripts with some global variables available.
- Free software: ISC license
- Documentation: http://snimpy.rtfd.org.
Snimpy is aimed at being the more Pythonic possible. You should forget that you are doing SNMP requests. Snimpy will rely on MIB to hide SNMP details. Here are some “features”:
- MIB parser based on libsmi (through CFFI)
- SNMP requests are handled by PySNMP (SNMPv1, SNMPv2 and SNMPv3 support)
- scalars are just attributes of your session object
- columns are like a Python dictionary and made available as an attribute
- getting an attribute is like issuing a GET method
- setting an attribute is like issuing a SET method
- iterating over a table is like using GETNEXT
- when something goes wrong, you get an exception
- IPv6 support.
- Minor bugfixes.
- Workaround a problem with CFFI extension installation.
- Python 3.3 support. Pypy support.
- PEP8 compliant.
- Sphinx documentation.
- Octet strings with a display hint are now treated differently than plain octet strings (unicode). Notably, they can now be set using the displayed format (for example, for MAC addresses).
- GETBULK support.
- MacAddress SMI type support.
- Support for IPython 0.12.
- Minor bugfixes.
- Ability to return None instead of getting an exception.
- Thread safety and efficiency.
- SNMPv3 support
- Compatibility with IPython 0.11.
- Custom timeouts and retries.
- Check conformity of loaded modules.
- Many bugfixes.
- Allow to cache requests.
- Provide a manual page.
- Use a context manager to group SET requests.
- First release on PyPI.