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

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.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.

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