SNMP Manager - Telecom Multivendor Data Collection System
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
- Examples - Usage examples and demos
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
- GitHub Repository: https://github.com/mexyusef/snmp-manager
- PyPI Package: https://pypi.org/project/snmpbox/
- Documentation: https://snmp-manager.readthedocs.io/
- Bug Reports: https://github.com/mexyusef/snmp-manager/issues
- Discussions: https://github.com/mexyusef/snmp-manager/discussions
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)
| File | Size | Uploaded | |
|---|---|---|---|
| snmpbox-0.1.1.tar.gz | 125.7 kB | Details |
Built distribution (wheel)
| File | Interpreter | ABI | Platform | Reset |
|---|---|---|---|---|
| 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
|