Comprobación de hosts activos (Ping Sweep) (Versión Bash)
En este artículo técnico de jesusninoc.com, te mostramos cómo verifica qué direcciones ip dentro de un segmento de red local responden a ping utilizando un script corto en Bash de forma nativa en Linux.
Código del Script (Bash)
#!/bin/bash
SEGMENTO=${1:-192.168.1}
MAX=50
echo "Escaneando $SEGMENTO.0/24..."
for i in {1..254}; do
(
ping -c 1 -W 1 "$SEGMENTO.$i" >/dev/null 2>&1 &&
echo "Host activo: $SEGMENTO.$i"
) &
while [ "$(jobs -r | wc -l)" -ge "$MAX" ]; do
sleep 0.1
done
done
wait
Explicación detallada del funcionamiento
Ejecuta un bucle rápido en paralelo usando subprocesos en background (&) para lanzar pings con un timeout de 1 segundo (-W 1) y un solo intento (-c 1).
Análisis de Seguridad y Buenas Prácticas
🔒 Recomendaciones del Agente de Seguridad:
Lanzar 254 procesos concurrentes genera un pequeño pico de actividad de red. No usar en redes corporativas sin previa autorización debido a alertas de escaneo de red.