Todos los proyectos
Escáner de topología de red
Escanea una red con Nmap, construye la topología como grafo con NetworkX y la exporta a HTML interactivo con PyVis.
- Tipo
- Proyecto personal
- Fecha
- 2026 — Actualidad
- Rol
- Autor único
- Código
- GitHub
01Resumen técnico
Una herramienta en Python que convierte un rango de red en un mapa. Nmap descubre los hosts activos y sus puertos y servicios abiertos; los resultados se convierten en un grafo de NetworkX y PyVis lo exporta a una página HTML interactiva que se abre en cualquier navegador.
Está pensada para inventariar y auditar rápidamente redes propias o con autorización para escanearlas.
02Arquitectura
Input
NetworkCIDR rangee.g. 192.168.1.0/24
Discovery
Nmapping sweepports · services (-sV)
Python
ClassifierMAC vendor → categoryrisky-port flags
SQLitescan history · diff
Model
NetworkXtopology graph
Output
PyVisinteractive HTML
CSVinventory
03Mi contribución
Diseñé y escribí toda la herramienta: escaneo, clasificación, construcción del grafo, exportaciones, historial, tests y CI.
04Implementación
- Descubrimiento — Nmap en dos fases por defecto: un barrido ping para encontrar hosts activos y después detección de puertos y servicios (
-sV) solo sobre ellos. Detección de SO opcional y un modo rápido. - Clasificación — el fabricante de la MAC de cada host se asigna a una categoría (router, firewall, VM, NAS, impresora, cámara, IoT…). Solo funciona en el mismo segmento L2, porque ARP no atraviesa routers ni VLANs.
- Alertas — los hosts con puertos sensibles abiertos (Telnet, SMB, RDP, FTP, VNC) se marcan en rojo.
- Historial — cada escaneo se guarda en SQLite y se compara con el anterior: hosts nuevos o desaparecidos y puertos que cambian.
- Interfaces — CLI y una interfaz web local opcional en Streamlit con escaneos cancelables; exportación a CSV para inventario.
- Calidad — tests con pytest simulando Nmap (sin necesidad de red real) y GitHub Actions ejecutando tests y ruff en cada push.
05Resultado
Un mapa de topología en HTML interactivo con iconos por categoría y alertas en rojo, un inventario CSV y la comparación entre escaneos.