He creado este script para saber como extraer las direcciones ip de un archivo de log.
El script utiliza como primer argumento el archivo log del que queremos extraer las IPs y como segundo argumento el archivo donde queremos poner las ips sueltas.
Si no le indicas el archivo de salida crea en el directorio donde estas un archivo llamado listaips.
El script para extraer las direcciones ip de un archivo
#!/bin/bash
# script programado por Ignacio Alba
# http://Aplicacionesysistemas.com
#
# si solo quieres extraer ip de un archivo :
#cat origen | grep -oi "[0-9]\{1,3\}\.[0-9]\{1,3\}\.[0-9]\{1,3\}\.[0-9]\{1,3\}"|sort >> destino
#ayuda por si no se ponen parametros
if [ -z $1 ];then
echo -e "Tienes que decirme cual es el archivo de origen y destino con la siguiente sintaxis"
echo ""
echo -e "\e[91m./extraeip origen destino\e[0m "
echo ""
echo -e "si no pones destino creo el archivo \e[91mlistaips\e[0m en el directorio donde te enchemtras"
exit
else
# readlink nos muestra la ruta completa del archivo.
origen=$(readlink -f $1)
ruta=$(pwd)
# variable en funcion de si se pone o no segundo parametro
if [ -z $2 ];then
cat $1 | grep -oi "[0-9]\{1,3\}\.[0-9]\{1,3\}\.[0-9]\{1,3\}\.[0-9]\{1,3\}"|sort >> listaips
echo -e " \e[92mArchivo de origen : \e[91m$origen\e[0m "
echo -e " \e[92mArchivo destino listado IPs: \e[91m$ruta/listaips\e[0m "
else
destino=$(readlink -f $2)
cat $1 | grep -oi "[0-9]\{1,3\}\.[0-9]\{1,3\}\.[0-9]\{1,3\}\.[0-9]\{1,3\}"|sort >> $2
echo -e " \e[92mArchivo de origen : \e[91m$origen\e[0m "
echo -e " \e[92mArchivo destino listado IPs: \e[91m$destino\e[0m "
fi
fi
# Mensaje de despedida
echo ""
echo ""
sleep 1s;echo -e "\e[92mNo olvides visitarnos en\e[0m"
sleep 1s;echo -e " \e[42m\e[97m\e[1mhttps://aplicacionesysistemas.com\e[0m"
Como extraer las direcciones ip de un archivo
1) Creamos un nuevo archivo de texto llamado extraeips.
nano extraeips
2) Pegamos el contenido del script (Ctrl+Mayus+V) guardamos con Ctrl+x ponemos S para poder guardarlo.
3) Damos permisos de ejecución al script para el usuario (gracias Héctor Herrera)
chmod u+x extraeips
4) Ejecutamos el script
./extraeips origen destino
Ejemplo
./extraeips /var/log/auth.log /home/aplicacionesysistemas/Documentos/listaips
o también
./extraeips origen
Ejemplo
./extraeips /var/log/auth.log
En este caso nos creara el listado de direcciones IP en el directorio donde nos encontramos.
Si se te ocurre alguna manera de mejorar el script o añadir nuevas funcionalidades cuentanos como lo harías
Para crear este script he utilizado información de las siguientes páginas.
http://www.forosdelweb.com/f41/sed-extraer-ips-archivo-log-517127/
http://es.kioskea.net/faq/bash-372
Si os ha gustado o resultado util, podéis compartirlo o dar +1 en las redes sociales, a mi me anima mucho a seguir escribiendo.
Ha sido muy util. Ultimamente estoy sufriendo intentos de ataque de fuerza bruta y con este script, un poco de cron y fail2ban estoy parando como puedo a los malos.
Gracias por el aporte y adelante con el bien trabajo +1