Objetivo
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 procurando um IP numa página web escolhida :
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.
Sed
O comando
sed :
- parâmetros
- -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 !
Artigo
original publicado por
asevere
A ver igualmente
Comunidade de assistência e de conselho.
Publicado por
pintuda -
última modificação por jujuerica