Scopo
Per tante ragione uno può aver bisogno di ricuperare il proprio
indirizzo IP pubblico in un script.
Il problema che si pone allora quando si è su un
LAN, è di ritrovare questo indirizzo pubblico senza intervento umano.
Metodo
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'
Spiegazioni
GET
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
Lynx è un browser in modalità testo presente nelle maggior parte delle distribuzioni
Linux, più semplice ad installare di lwp-request (Perl).
Sed
Il comando
sed :
- I parametri
- -n : limita la visualizzazione alle linee invocate (legato al parametro "p")
- -r : supporta delle espressioni regolare estese
- -e : espressione
- s///: indica una sostituzione
- p : Il risultato è visualizzato (legato al parametro "n")
- il motivo
- ^.*(motif_ip).*$ : ricerca una linea che contiene un indirizzo IP
- \1 : ciò che è tra parentesi può essere indirizzato nel seguito dell'espressione da \1.
La linea che contiene l'indirizzo IP è quindi sostituita dall'indirizzo IP stesso ;)
____________________________
Nota: L'articolo originale è stato scritto da
asevere contribuente di
CommentCaMarche