Finalidad
Por varias razones, tendremos que recuperar nuestra
dirección IP publica en un Script.
El problema que se puede encontrar si estamos en una
LAN, es de encontrar nuestra IP sin ningún tipo de intervención.
Realizarlo
El método mas sencillo que he encontrado hasta ahora es un simple comando que busca una IP en una pagina web escogida :
GET www.monip.org | sed -nre 's/^.* (([0-9]{1,3}\.){3}[0-9]{1,3}).*$/\1/p'
ou
lynx --source www.monip.org | sed -nre 's/^.* (([0-9]{1,3}\.){3}[0-9]{1,3}).*$/\1/p'
Explicaciones
GET
El comando
GET (
lwp-request) se encuentra en la libwww de
Perl (
package perl-libwww-perl-version).
Como su nombre lo indica el comando hace un GET sobre una pagina, y esto reenvía el código fuente de la pagina.
Lynx
Lynx es un navegador en modo texto presente en casi todas las distribuciones de
Linux, mucho mas sencillo que lwp-request (
Perl).
Sed
El comando
sed:
- Los parámetros:
- -n : Restringe las lineas ()
- -r : Soporte de las expresiones regulares extendidas
- -e : Expresión
- s///: indica una sustitución
- p : el resultado sera Imprimido en el espacio de patrón
- El modelo
- ^.*(modelo_ip).*$ : busca una linea que contenga una dirección IP (cf : Recuperar dirección IP )
La linea con la dirección IP sera cambiada por la dirección IP ella misma ;)
Ahora usted sabrá que hacer con el resultado ;).