Skip to main content

Lightweight synchronous SNMPv1 Client implemented as a PySNMP wrapper optimized for sequential queries

Project description

py_snmp_sync

PyPI Python License

Lightweight synchronous SNMPv1 Client implemented as a PySNMP wrapper optimized for sequential queries


Features

  • Synchronous API for straightforward SNMPv1 GET operations
  • Lightweight wrapper around PySNMP's core components
  • Can be used to interface Epson printers

Installation

pip install py_snmp_sync

Quick Start

from py_snmp_sync import (
    SyncUdpTransportTarget, sync_get_cmd, ObjectIdentity, CommunityData
)

target = SyncUdpTransportTarget(('demo.pysnmp.com', 161))
oid = ObjectIdentity('1.3.6.1.2.1.1.1.0')

# Perform SNMP GET request
error, status, index, binds = sync_get_cmd(
    CommunityData("public", mpModel=0),
    target,
    oid
)

if not error and not status:
    for name, value in binds:
        print(f"{name.prettyPrint()} = {value.prettyPrint()}")

Usage

Basic Configuration

transport = SyncUdpTransportTarget(
    (host, 161), 
    timeout=2, 
    retries=3
)
community = CommunityData("public", mpModel=0)  # SNMPv1
  • timeout: Response wait timeout (seconds)
  • retries: Number of retry attempts

Alternatively, community can be a string (e.g., "public").

oid can be an ObjectIdentity() (e.g., ObjectIdentity("SNMPv2-MIB", "sysDescr", 0) or ObjectIdentity('1.3.6.1.2.1.1.1.0')), or a string (e.g., "1.3.6.1.2.1.1.1.0").

sync_get_cmd() returns a tuple similar to pysnmp get_cmd(): (error_indication, error_status, error_index, var_binds) and supports multiple OIDs per request.

Batch operations

oids = [
    ObjectIdentity('1.3.6.1.2.1.1.1.0'),
    ObjectIdentity('1.3.6.1.2.1.1.5.0')
]

with SyncUdpTransportTarget(('device-ip', 161)) as transport:
    for oid in oids:
        error, status, _, binds = sync_get_cmd(community, transport, oid)
        # Handle response

Contributing

Contributions welcome! Please follow standard guidelines:

  • Fork the repository

  • Create a feature branch

  • Submit a Pull Request

License

EUPL-1.2 License - See LICENSE for details.

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

py_snmp_sync-1.0.0.tar.gz (9.0 kB view details)

Uploaded Source

File details

Details for the file py_snmp_sync-1.0.0.tar.gz.

File metadata

  • Download URL: py_snmp_sync-1.0.0.tar.gz
  • Upload date:
  • Size: 9.0 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.1.0 CPython/3.13.3

File hashes

Hashes for py_snmp_sync-1.0.0.tar.gz
Algorithm Hash digest
SHA256 7464e5ff4e611cf2eeeeb29dcf8a0eddb4db213980129f541e011c81246b941b
MD5 96891ca2edabf416c315f7c75ee1d0c6
BLAKE2b-256 7c5148193e6207271397b1da3cdcfb8627d0465e25d713e1112369695ca8cb5a

See more details on using hashes here.

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Pingdom Monitoring Sentry Error logging StatusPage Status page