Visualizza Porte Switch Huawei - Web application Flask per il monitoraggio e la visualizzazione delle porte degli switch Huawei tramite SNMP.
Huawei Switch Port Viewer - Flask web application for monitoring and visualizing Huawei switch ports via SNMP.
- Mappa porte switch / Switch Port Mapper: Visualizzazione grafica di tutte le porte di uno switch con stato (up/down), VLAN assegnata, modalita (access/trunk)
- Discovery di rete / Network Discovery: Scansione automatica di una subnet per trovare switch Huawei raggiungibili via SNMP
- Visualizzatore VLAN / VLAN Visualizer: Vista a griglia, tabella e albero delle VLAN configurate
- Supporto Stack: Rilevamento automatico di switch in configurazione stack
- Query SNMP ottimizzate / Optimized SNMP: Query parallele per ridurre i tempi di risposta da 60+ secondi a meno di 5
- Dashboard monitoraggio / Monitoring Dashboard: Monitoraggio in tempo reale dello stato delle porte
app_switch_mapper.py # Main app - Switch Port Mapper (porta 5002)
app_huawei_vlan.py # VLAN Visualizer app (porta 5001)
snmp_client.py # Client SNMP con parsing Q-BRIDGE-MIB
snmp_optimized.py # Client SNMP ottimizzato con query parallele
snmp_client_enhanced.py # Funzioni aggiuntive (stato porte, stack detection)
frontend/dist/ # Frontend React + HTML per il port mapper
web/ # Frontend HTML per il VLAN visualizer
- Python 3.8+
net-snmptools (snmpget,snmpwalk)- Linux:
apt-get install snmp - macOS:
brew install net-snmp
- Linux:
- Switch Huawei raggiungibili via SNMP v2c
# Clona il repository / Clone the repository
git clone https://github.com/mmereu/huawei-vlan-viewer.git
cd huawei-vlan-viewer
# Crea virtual environment / Create virtual environment
python3 -m venv .venv
source .venv/bin/activate
# Installa dipendenze / Install dependencies
pip install -r requirements.txt
# Configura le variabili d'ambiente / Configure environment variables
cp .env.example .env
# Modifica .env con i tuoi valori / Edit .env with your valuesModifica il file .env con i valori del tuo ambiente:
Edit the .env file with your environment values:
# Community SNMP dei tuoi switch / SNMP community of your switches
SNMP_COMMUNITY=public
# Origini CORS consentite / Allowed CORS origins
CORS_ORIGINS=http://localhost:3000,http://localhost:3001
# Lista switch predefiniti (JSON) / Default switch list (JSON)
SWITCH_LIST=[{"ip":"192.168.1.1","hostname":"Switch-01","location":"Server Room"}]
# IP switch di test / Test switch IP
TEST_SWITCH_IP=192.168.1.1python app_switch_mapper.py --host 0.0.0.0 --port 5002Apri il browser su http://localhost:5002 per visualizzare la mappa delle porte.
python app_huawei_vlan.py --host 0.0.0.0 --port 5001Apri il browser su http://localhost:5001 per il visualizzatore VLAN.
| Metodo | Endpoint | Descrizione |
|---|---|---|
| POST | /api/switch/map |
Mappa completa porte switch |
| POST | /api/discover |
Discovery switch sulla rete |
| GET | /api/health |
Health check |
| Metodo | Endpoint | Descrizione |
|---|---|---|
| GET | /api/switches/<ip>/vlans |
VLAN di uno switch |
| POST | /api/switches/<ip>/refresh |
Svuota cache per uno switch |
| GET | /api/switches |
Lista switch configurati |
| GET | /api/health |
Health check |
# Mappa porte di uno switch / Map switch ports
curl -X POST http://localhost:5002/api/switch/map \
-H "Content-Type: application/json" \
-d '{"switch_ip": "192.168.1.1"}'
# Discovery di una subnet / Discover a subnet
curl -X POST http://localhost:5002/api/discover \
-H "Content-Type: application/json" \
-d '{"network": "192.168.1.0/24"}'Per eseguire l'app come servizio su Linux:
[Unit]
Description=Huawei Switch Port Mapper
After=network.target
[Service]
Type=simple
User=your-user
WorkingDirectory=/path/to/huawei-vlan-viewer
Environment=PATH=/path/to/huawei-vlan-viewer/.venv/bin
ExecStart=/path/to/huawei-vlan-viewer/.venv/bin/python app_switch_mapper.py --port 5002
Restart=always
[Install]
WantedBy=multi-user.targetMIT License - See LICENSE for details.