Per ragioni diverse uno può aver bisogno di ricuperare il proprio indirizzo IP pubblico in un script.
Il problema che si pone allora quando si è su una rete LAN, è di ritrovare questo indirizzo pubblico senza intervento umano.
Il metodo più semplice che ho trovato finora è un semplice comando che ricerca un indirizzo IP in una pagina web scelta :
GET www.monip.org | sed -nre 's/^.* (([0-9]{1,3}\.){3}[0-9]{1,3}).*$/\1/p'
o
lynx --source www.monip.org | sed -nre 's/^.* (([0-9]{1,3}\.){3}[0-9]{1,3}).*$/\1/p'
Il comando GET (lwp-request) si trova nella libwww di Perl (package perl-libwww-perl-version).
Come lo suggerisce il nome esso fa un GET su una pagina, ciò che rimanda il codice sorgente della pagina.
Lynx è un browser in modalità testo presente nelle maggior parte delle distribuzioni Linux, più semplice ad installare di lwp-request (Perl).
Il comandosed:
La linea che contiene l'indirizzo IP è quindi sostituita dall'indirizzo IP stesso ;)