Menú

Mostrar Mensajes

Esta sección te permite ver todos los mensajes escritos por este usuario. Ten en cuenta que sólo puedes ver los mensajes escritos en zonas a las que tienes acceso en este momento.

Mostrar Mensajes Menú

Temas - xianur0n

#1
Bueno hacen unos dias me estuve preguntando por curiosidad que cada tiempo mi ip publica cambia. Entonce decidí escribir un script que loggeara mi ip publica en un archivo de texto y escriba en el archivo cuando la ip cambie y la nueva ip. la primera vez que el script corre pues mostrara texto en el standard output que es la pantalla. pero la segunda y las consecuentes veces si el archivo no a cambiado el script correrá de casi manera no interactiva chekeara si la ip cambio si no escribe en el archivo la ip con la fecha de cuando corrió y si la ip cambio comoquiera escribirá en el archivo que la ip a cambiado y nos loggeara la nueva ip. lo unico que la fuente de donde saco la ip no es muy confiable si saben de alguna mejor por favor dejarme saber. el script es perfecto para correrlo una vez y después crear una linea en el crontab para que el script corra una vez al dia sin ninguna interacción con el usuario.

Código: bash

#!/bin/bash

##Sencillo script que permite loggear la ip publica detras de una coneccion normal al internet
##o mediante un vpn. El scrip guarda la informacion en el archivo donde se loggearan las ip en la variable filedir. Sientanse
##a gustos de modificar la variable a donde quieran guardar el archivo con las ip. Si modifican la
##variable no olviden de especificar la ruta completa + el nombre del archivo como lo quieran llamar,
##sino bash dara un error por que no puede redireccionar output a un directorio. El scrip obtendra
##ls IP publica mediante el comando curl, y desde el website www.ipecho.net/plain. Si saben de
##otra forma mas segura para conseguir la IP por favor dejarme saber. El script esta escrito
##de manera que sea facil correrlo al encender el computador y pueda corren en el background. Si
##el archivo ya existe y el script es corrido, el script buscara en la ultima ip loggeada en el
##archivo y y la compara con la IP que este tengamos en el comento de correr el script. Si
##las ip no son iguales. El script loggeara algo dejandonos saber que la ip a cambiado. y escribira
##en el archivo la nueva IP.
## ESCRITO POR:xianur0n

#Ruta al archivo donde se loggearan las IP
filedir=~/privateip.list

#Si el script es corrido sin parametros y el archivo no
#existe entonces mostrara en pantalla informacion
if [[ -z "$1" ]]; then
   if [[ ! -f "$filedir" ]]; then
   echo -e "$filedir no existe, creandolo..... "   
   echo "Creando File"
   echo ".............."
   fi
#Si el Script es corrido con parametros nos muestra
#como se debe de usar y termina.
elif [[ -n "$1" ]]; then
   echo "USAGE:./scriptname"                       
   exit 100
else
   true;
fi
#Guarda ip en variable
privateip=$(curl -s http://ipecho.net/plain)

#Chekea que el Archivo exista
#encaso de que archivo exista, Chekea la ip
#Obtine ultima IP loggeada en archivo para comparacion
#Compara IP en archivo y IP actual
#Si IP no son iguales escribe ls IP en el Archivo
if [[ -f "$filedir" ]]; then
varip=$(curl -s http://ipecho.net/plain)
fileip=$(tail -1 privateip.list | awk '{print $7}')
if [[ "$varip" != "$fileip" ]]; then
  echo -e "TU IP A CAMBIADO!!!!!!!!" >> $filedir
  echo -e "`date`                        $varip" >> $filedir
else
  echo -e "`date`                        $varip" >> $filedir
fi
fi
#si el archivo no existe crea el formato del archivo.
#y escribe por primera vez la IP publica al momento de correr el script.
if [[ ! -f "$filedir" ]]; then
  echo -e "Date                                                IP" >> $filedir
  echo -e "`date`                        $privateip" >> $filedir
fi

exit 0