como extraer las direcciones ip de un archivo

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.