Skip to main content

SNMP Manager - Telecom Multivendor Data Collection System

PyPI version License: MIT Python 3.8+

A robust, intelligent SNMP data collection system capable of handling multivendor telecom devices (OLT/ONU, BSC/RNC, etc.) with automatic discovery, reverse engineering capabilities, and uniform data output.

Features

  • Intelligent Device Discovery - Automatically discover and profile SNMP devices
  • Adaptive Adapter System - Self-learning adapters that evolve with each device
  • Reverse Engineering - Handle undocumented devices through pattern recognition
  • Uniform Data Output - Standardized JSON/XML/YAML output for all devices
  • High Performance - Parallel collection and intelligent caching
  • Crowdsourced Knowledge - Community-driven device profile database
  • Pattern Recognition - ML-like device classification with confidence scoring
  • Self-Learning - Gets smarter with every device interaction
  • Robust Fallback Strategies - Multiple collection methods with graceful degradation

Quick Start

from snmp_manager import SNMPManager

# Discover devices on network
async with SNMPManager() as manager:
    devices = await manager.discover_devices("192.168.1.0/24")

    # Collect data from all devices
    for device in devices:
        data = await device.collect()
        print(f"Device {device.host}: {len(data)} fields collected")

Use Case Example

# Enhanced device with full intelligence features
from snmp_manager.core.enhanced_device import EnhancedDevice

async def main():
    # Create enhanced device (no manual configuration needed!)
    device = EnhancedDevice(host="192.168.1.10")

    # Intelligent discovery (reverse engineers unknown devices!)
    discovery = await device.intelligent_discover()
    print(f"Discovered {discovery['total_duration_ms']:.1f}ms")

    # Smart data collection with fallback strategies
    data = await device.collect_with_intelligence()
    print(f"Collected {len(data)} fields")

    # Get device insights
    insights = await device.get_intelligent_insights()
    print(f"Device classification: {insights['device_info']['signature']}")

asyncio.run(main())

Supported Devices

Telecom Equipment

  • OLT/ONU: Huawei (MA5800, MA5600), ZTE (ZXA10), V-SOL (V1600, V2800), Fiberhome (AN5500)
  • Cellular: BSC, RNC, SMSC, BTS, mobile network equipment
  • GPON/EPON: All major OLT and ONU/ONT devices
  • Network Switches: Cisco, Juniper, Huawei, ZTE, Mikrotik
  • Routers: Enterprise and carrier-grade routers

Vendor Support

  • Documented: Huawei, ZTE, Cisco, Juniper, Mikrotik
  • Undocumented: V-SOL, C-Data, Fiberhome (via reverse engineering)
  • Unknown: Any SNMP device (pattern recognition + learning)

Installation

# From PyPI
pip install snmpbox

# With optional ML features
pip install snmpbox[ml]

# With development tools
pip install snmpbox[dev]

# From source
git clone https://github.com/mexyusef/snmp-manager.git
cd snmp-manager
pip install -e .

Documentation

Development

# Clone repository
git clone https://github.com/mexyusef/snmp-manager.git
cd snmp-manager

# Install development dependencies
pip install -e ".[dev]"

# Run tests
python -m pytest tests/

# Build documentation
mkdocs build

Contributing

Contributions are welcome! Please see our Contributing Guide for details.

License

Copyright © 2025 Yusef Ulum

This project is licensed under the MIT License - see the LICENSE file for details.

Links

Metadata

Release files for snmpbox 0.1.1

For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.

Source distribution (sdist)

Source distribution for snmpbox 0.1.1
File Size Uploaded
snmpbox-0.1.1.tar.gz 125.7 kB Details

Built distribution (wheel)

Table of built distributions (wheels) for snmpbox 0.1.1
File Interpreter ABI Platform
snmpbox-0.1.1-py3-none-any.whl Python 3 none any Details

Total release size: 230.5 kB

Release files / snmpbox-0.1.1.tar.gz

Download URL snmpbox-0.1.1.tar.gz
Size 125.7 kB
Tags Source
SHA-256 checksum
How to use checksums
bb7c48fa91e9b2a4e4042131e8b690a56e2adacfe6316b08c30209a1181a9460
BLAKE2b-256 checksum
How to use checksums
aea01120fa4ac86ffcb95cfc673d89453dc3fddaa89c443c1b9f816f2c4f2483
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/6.1.0 CPython/3.11.0

Release files / snmpbox-0.1.1-py3-none-any.whl

Download URL snmpbox-0.1.1-py3-none-any.whl
Size 104.8 kB
Tags Python 3
SHA-256 checksum
How to use checksums
376c4d4492e6ffccbb10e26dff14b77cc8862f67e6807e7826378572f8fcc47e
BLAKE2b-256 checksum
How to use checksums
7cb331d2f1c2386c87ee850c1e99e84a9c5ef92edb149ef97c32891eb6b1f068
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/6.1.0 CPython/3.11.0

Release history Release notifications | RSS feed

This release

0.1.1 This release

2 release files

0.1.0

2 release files

Anthropic, PBC Visionary sponsor Bloomberg Visionary sponsor Hudson River Trading Visionary sponsor Meta Visionary sponsor NVIDIA Visionary sponsor Microsoft Sustainability sponsor Depot Continuous Integration AWS Cloud computing and Security Sponsor Datadog Monitoring Fastly CDN Google Download Analytics Sentry Error logging StatusPage Status page