Shell - Recuperar o seu IP público

Agosto 2016

Por várias razões, nós podemos precisar recuperar o nosso endereço IP público em um script. O problema, se nos encontramos em uma LAN - Rede Local, é o de encontrar este endereço IP, sem intervenção humana.

Implementação

O meio mais simples, encontrado até agora, é um simples comando para procurar um IP em uma determinada página web:

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'
ou
w3m -dump http://www.monip.org/ | awk -F': ' '/IP/ { print $2 }'

Explicações

GET

O comando GET (lwp-request) se encontra na libwww do Perl (package perl-libwww-perl-version). Como seu nome indica, ele faz um GET numa página e isso envia o código fonte da página.

Lynx

Lynx é um navegador, em modo texto, presente na maioria das distribuições Linux, mais fácil de ser instalado do que o lwp-request (Perl), caso seja necessário.

O comando Sed

Configurações:
-n: restringe a exibição às linhas solicitadas (ligado ao parâmetro "p")
-r: suporta as expressões regulares estendidas
-e: expressão
s///: indica uma substituição
p: o resultado é exibido (ligado ao parâmetro "n")
o motivo
^.*(motif_ip).*$ : busca de uma linha com um endereço IP (cf : Recuperar um endereço IP )
\1: o que está entre parênteses pode ser enviado na sequência da expressão pelo \1.
A linha com o endereço IP é, então substituída pelo próprio endereço IP. Agora, você que sabe o que fazer com o que encontrou !

Veja também :
Este documento, intitulado « Shell - Recuperar o seu IP público »a partir de CCM (br.ccm.net) está disponibilizado sob a licença Creative Commons. Você pode copiar, modificar cópias desta página, nas condições estipuladas pela licença, como esta nota aparece claramente.