Para mostrar seu endereço de origem da rota padrão:
ip route get 8.8.8.8 | awk ' /^[0-9]/ { print $7 }'
- O
{ print $7 }
está selecionando o sétimo campo da ip...
output;
- O
^[0-9]
está selecionando linhas que começam com um número, pois ip
gera duas linhas para escolher a linha correta.
Nota: Eu prefiro esta primeira solução, porém mostrando outras alternativas para mostrar alternativas.
Ou:
ip route get 8.8.8.8 | cut -f7 -d" " | grep '^[0-9]'
Novamente:
- o
cut
seleciona o sétimo campo;
Ou:
ip route get 8.8.8.8 | grep ^[0-9] | cut -f7 -d" "
Ou:
ip route get 8.8.8.8 | fgrep src | cut -f7 -d" "
Ou também:
ip route get 8.8.8.8 | awk ' /src/ { print $7 }'
Para esclarecer um pouco, aqui está a saída de ip
:
$ ip route get 8.8.8.8
8.8.8.8 via 192.168.1.1 dev eth0 src 192.168.1.249
cache
Existem vários métodos para obter a rota padrão no Linux, via ip
, procfs
ou netstat
. netstat
está se tornando obsoleto e IMO, ip
é uma opção melhor que está presente em qualquer distribuição recente do Linux.