Skip to main content

Intelligent SNMP data collection system for telecom devices with automatic discovery and reverse engineering

Project description

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 snmp-manager

# With optional ML features
pip install snmp-manager[ml]

# With development tools
pip install snmp-manager[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

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

snmpbox-0.1.0.tar.gz (125.6 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.0-py3-none-any.whl (104.8 kB view details)

Uploaded Python 3

File details

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

File metadata

  • Download URL: snmpbox-0.1.0.tar.gz
  • Upload date:
  • Size: 125.6 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.0.tar.gz
Algorithm Hash digest
SHA256 c665c3b0e792cafc0bbeec911d56ea23df4ce051a488d43df77e7d6462e7d136
MD5 a5e6ab7509a1de73c97ac75284d2d3ae
BLAKE2b-256 ce60f985ae59becbd6da7589f0a9051b1a75a84839ad3d041cd5d5bd07a779a8

See more details on using hashes here.

File details

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

File metadata

  • Download URL: snmpbox-0.1.0-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.0-py3-none-any.whl
Algorithm Hash digest
SHA256 5027004068f5d7a53189c560a2feabe00475889800a67c59bf299cc79abb8111
MD5 80eb6ac813b0a7aa3798f26e08a95b71
BLAKE2b-256 1fd22992bd2be9d7d504063777c591c10b96f96d13c4ac482a8319fd5df4d1ab

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