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.