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

Download files

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

Source Distribution

snmpbox-0.1.1.tar.gz (125.7 kB view details)

Uploaded Source

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

snmpbox-0.1.1-py3-none-any.whl (104.8 kB view details)

Uploaded Python 3

File details

Details for the file snmpbox-0.1.1.tar.gz.

File metadata

  • Download URL: snmpbox-0.1.1.tar.gz
  • Upload date:
  • Size: 125.7 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.1.0 CPython/3.11.0

File hashes

Hashes for snmpbox-0.1.1.tar.gz
Algorithm Hash digest
SHA256 bb7c48fa91e9b2a4e4042131e8b690a56e2adacfe6316b08c30209a1181a9460
MD5 887f8ca6d8832b1f3855733d962733b1
BLAKE2b-256 aea01120fa4ac86ffcb95cfc673d89453dc3fddaa89c443c1b9f816f2c4f2483

See more details on using hashes here.

File details

Details for the file snmpbox-0.1.1-py3-none-any.whl.

File metadata

  • Download URL: snmpbox-0.1.1-py3-none-any.whl
  • Upload date:
  • Size: 104.8 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.1.0 CPython/3.11.0

File hashes

Hashes for snmpbox-0.1.1-py3-none-any.whl
Algorithm Hash digest
SHA256 376c4d4492e6ffccbb10e26dff14b77cc8862f67e6807e7826378572f8fcc47e
MD5 a30808448e2176c268627f69cf0c2c79
BLAKE2b-256 7cb331d2f1c2386c87ee850c1e99e84a9c5ef92edb149ef97c32891eb6b1f068

See more details on using hashes here.

Release history Release notifications | RSS feed

This release

0.1.1 This release

2 files

0.1.0

2 files

Supported by

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