#!/bin/bash

# Verifica que se pase al menos el rango como parámetro
if [ $# -lt 1 ]; then
    echo "Uso: $0 <rango_ip>"
    echo "Ejemplo: $0 192.168.1.0/24"
    exit 1
fi

# =========================
# Parámetros
# =========================
RANGO="$1"                      # Obligatorio
PUERTOS="${2:-1-1024}"          # Opcional: por defecto 1-1024
RATE="${3:-1000}"               # Opcional: por defecto 1000 paquetes por segundo

# =========================
# Archivo de salida
# =========================
SALIDA_DIR="/mnt/dw"
TIMESTAMP=$(date +%F_%H-%M-%S)
SALIDA_FILE="$SALIDA_DIR/masscan_resultado_${TIMESTAMP}.txt"

# =========================
# Verificación de carpeta
# =========================
if [ ! -d "$SALIDA_DIR" ]; then
    echo "📁 El directorio $SALIDA_DIR no existe. Creándolo..."
    mkdir -p "$SALIDA_DIR"
fi

# =========================
# Ejecutar masscan
# =========================
echo "🚀 Ejecutando masscan:"
echo "   Rango     : $RANGO"
echo "   Puertos   : $PUERTOS"
echo "   Rate      : $RATE paquetes/segundo"
echo "   Guardando : $SALIDA_FILE"

sudo masscan "$RANGO" -p"$PUERTOS" --rate="$RATE" -oL "$SALIDA_FILE"

echo "✅ Escaneo finalizado. Resultados en: $SALIDA_FILE"
