Shell: Recuperare il suo indirizzo IP pubblico

Scopo

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.

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 comandosed:

  • I parametri
    • -n: limita la visualizzazione alle linee invocate (legato al parametro "p")
    • -r: supporto 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 ;)

I nostri contenuti sono creati in collaborazione con esperti di high-tech, sotto la direzione di Jean-François Pillou, fondatore di CCM.net. CCM è un sito di high-tech leader a livello internazionale ed è disponibile in 11 lingue.
Il documento intitolato « Shell: Recuperare il suo indirizzo IP pubblico » dal sito CCM (it.ccm.net) è reso disponibile sotto i termini della licenza Creative Commons. È possibile copiare, modificare delle copie di questa pagina, nelle condizioni previste dalla licenza, finché questa nota appaia chiaramente.
Unisciti ALLA COMMUNITY