Shell: Recuperare il suo indirizzo IP pubblico

Fai una domanda

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 ;)
Jean-François Pillou

Jean-François Pillou - Fondatore di CCM
Meglio conosciuto come Jeff, Jean-François Pillou è il fondatore di CommentCaMarche.net. È anche CEO di CCM Benchmark e digital director presso il Gruppo Figaro.

Scopri di più sul team CCM

Potrebbe anche interessarti