Para obter a lista de endereços IP associados, você pode usar o comando netstat
netstat -rn
Isso fornece uma longa lista de endereços IP e não é fácil encontrar o campo obrigatório. O resultado da amostra é o seguinte:
Routing tables
Internet:
Destination Gateway Flags Refs Use Netif Expire
default 192.168.195.1 UGSc 17 0 en2
127 127.0.0.1 UCS 0 0 lo0
127.0.0.1 127.0.0.1 UH 1 254107 lo0
169.254 link#7 UCS 0 0 en2
192.168.195 link#7 UCS 3 0 en2
192.168.195.1 0:27:22:67:35:ee UHLWIi 22 397 en2 1193
192.168.195.5 127.0.0.1 UHS 0 0 lo0
More result is truncated.......
O endereço IP do gateway está na primeira linha; um com padrão em sua primeira coluna.
Para exibir apenas as linhas de resultado selecionadas, podemos usar o comando grep junto com o netstat
netstat -rn | grep 'default'
Este comando filtra e exibe as linhas de resultado que possuem o padrão. Neste caso, você pode ver o resultado como o seguinte:
default 192.168.195.1 UGSc 14 0 en2
Se você estiver interessado em encontrar apenas o endereço IP do gateway e nada mais, você pode filtrar ainda mais o resultado usando awk . O comando awk corresponde ao padrão no resultado de entrada e exibe a saída. Isso pode ser útil quando você está usando o resultado diretamente em algum programa ou trabalho em lote.
netstat -rn | grep 'default' | awk '{print $2}'
O comando awk diz para combinar e imprimir a segunda coluna do resultado no texto. O resultado final é assim:
192.168.195.1
Neste caso, netstat exibe todos os resultados, grep apenas seleciona a linha com 'default' nele, e awk ainda corresponde ao padrão para exibir a segunda coluna no texto.
Você pode usar o comando route -n get default para obter o resultado necessário. O comando completo é
route -n get default | grep 'gateway' | awk '{print $2}'
Esses comandos funcionam bem no Linux, bem como em sistemas Unix e MAC OS.