shell-script-pt
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: [shell-script] pegar ip configurado


From: Felipe Carballo
Subject: Re: [shell-script] pegar ip configurado
Date: Fri, 28 Feb 2014 14:38:44 -0300

Marcelo,

A expressão regular que casa com qualquer endereço IP (sem considerar se é um endereço IP válido ou não) é "([0-9]{1,3}\.){3}[0-9]{0,3}". No entanto, essa expressão também vai casar com endereços IP do tipo 999.999.999.999, 000.000.000.000, etc

Sendo assim: 
$ ifconfig eth0 | grep -Eo "([0-9]{1,3}\.){3}[0-9]"

Esse grep vai trazer qualquer endereço IP proveniente da saída do comando ifconfig, inclusive o endereço de broadcast e a máscara de sub-rede.

Para saber como criar uma ER que case com endereço IP válido eu recomendo que veja o link abaixo, da página do Aurélio.
http://aurelio.net/regex/casar-ip.html

Abs!


Em 28 de fevereiro de 2014 13:54, Paulo Bettega <address@hidden> escreveu:
 

Olá Marcelo, uso essa expressão

grep -Eo '((1|2)?[0-9]{1,2}\.){3}(1|2)?[0-9]{1,2}' <<<"$(ifconfig)"

acho que desse jeito fica mais fácil filtrar ips válidos de não-válidos
se for preciso.

Pode virar uma função pra pegar os dados de uma só interface
pega_dados_if() {
sed -n "/$1/,/^$/p" <<<"$(ifconfig)"|egrep -o '((1|2)?[0-9]{1,2}\.){3}(1|2)?[0-9]{1,2}'
}

Por enquanto (e provavelmente pra sempre...) só uso ipv4 na minha
rede interna :) expressão regular pra pegar ipv6 deve ser um pesadelo.

Abraços Paulo Bettega



On 28-02-2014 10:56, Marcelo F Andrade wrote:
> Olá, gente!
>
> Gostaria, por gentileza, de uma outra dica --talvez mais adequada-- de
> como resolver uma tarefa que me pareceu simples: pegar o IP
> configurado na interface de rede.
>
> $ ifconfig eth0 | egrep '[0-9]{1,3}\.[0-9]{1,3}\.[0-9]{1,3}\.[0-9]{1,3}'
> inet addr:192.168.0.1 Bcast:192.168.0.255 Mask:255.255.255.0
>
> Como se vê, o padrão do IP casa três vezes nessa linha.
>
> Eu consigo resolver esse problema tranquilamente com um cut ou awk (ou
> mesmo um grep -o).
>
> Mas o que gostaria de saber é como seria uma ER para pegar "o valor do
> IP que aparece depois de 'inet addr:'".
>
> Grato.
>
> MARCELO F ANDRADE | Belem, Amazonia, Brazil | http://about.me/mfandrade
>




--
Felipe Carballo


reply via email to

[Prev in Thread] Current Thread [Next in Thread]