Skip to main content

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

Project description

py-snmp-sync

PyPI PyPI download month

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.1.tar.gz (8.9 kB view details)

Uploaded Source

File details

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

File metadata

  • Download URL: py_snmp_sync-1.0.1.tar.gz
  • Upload date:
  • Size: 8.9 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.1.tar.gz
Algorithm Hash digest
SHA256 333e2d3ad72d7fd30a70fff05c13530bf6b6eaec8a71b67400c115dcc5829cab
MD5 aa4fb2f76f8ae1047b8c94b1cfa347f1
BLAKE2b-256 e58432e76190838fd5a8f18fcce1d97b38de9b85b85a64d99c8edf4180199fc5

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