Bueno, pues ahí va el script para extraer la ip. He instalado el paquete xml2 (solo 14 k)
Y he creado el fichero miip.sh con este contenido:
Code: Select all
wget -O geoip.xml http://smart-ip.net/geoip-xml
eval $( grep -F "host" geoip.xml | xml2 | cut -b 2- )
echo $host
Con wget bajamos el texto del xml de la api geoip y lo guardamos en el ficherogeoip.xml
Con grep buscamos la cadena "host" dentro del fichero geoip.xml y nos quedamos solo con la linea que lo contiene. "<host>111.222.333.102</host>"
Con xml2 lo transformamos en una cadena "contenedor=valor": "/host=111.222.333.102" lo cual se parece mucho a cuando asignamos un valor a una variable, pero nos estorba el primer caracter "/" así que lo cortamos con cut -b 2- (cortar desde el segundo carácter en adelante) quedándonos con "host=111.222.333.102" que es una orden que podríamos haber ejecutado directamente y que guardaría el valor 111.222.... en la variable host. Con eval hacemos eso precisamente como si hubiesemos escrito la linea en el símbolo de comandos.
Y para demostrarlo y que la salida de miip.sh sea la ip, hacemos un "echo $host" (quedaría mas bonito en la variable hostwanip, lo sé)
Al ejecutar miip.sh (no os olvideis darle permiso de ejecución) obtenemos mucho texto en pantalla pero en verdad la salida es solo la última linea, para comprobarlo podemos ejecutar "./miip.sh > miip.txt" y ver lo que contienen miip.txt.
Ahora ya podemos enivarnos un whatsapp o un correo con el contenido de $host o con la salida de miip.sh.
(bueno, falta comprobar que no ha cambiado la ip para que no nos dé la tosta si lo programamos para que se ejecute cada 5 minutos)