ipa=$(ifconfig | perl -lane '/inet addr:(\S+)/ and $1 !~ "^127" and print $1')
Veja também aqui para uma infinidade de alternativas.
Por exemplo. usando grep
:
ipa=$(ifconfig | grep -Po 'inet addr:\K[^\s]+' | grep -v '^127')
Explicação:
ipa=$( )
atribui a saída do comando entre parênteses à variável ipa
ifconfig
show interfaces e seus endereços. Você pode preferir a saída do filtro ip address
e | grep -Po 'inet addr:\K[^\s]+'
usando uma regex compatível com perl
, imprima o texto correspondente novamente | grep -v '^127'
filter, desta vez excluindo os valores ( -v
) iniciados ( ^
) com 127
Para obter meu ip externo, geralmente faço:
dig +short myip.opendns.com @resolver1.opendns.com