Per ottenere l'elenco degli indirizzi IP associati, è possibile utilizzare il comando netstat
netstat -rn
Questo fornisce un lungo elenco di indirizzi IP e non è facile trovare il campo richiesto. Il risultato del campione è il seguente:
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.......
L'indirizzo IP del gateway è nella prima riga; uno con il valore predefinito nella prima colonna.
Per visualizzare solo le righe di risultato selezionate, possiamo usare il comando grep insieme a netstat
netstat -rn | grep 'default'
Questo comando filtra e visualizza quelle righe di risultato che hanno l'impostazione predefinita. In questo caso, puoi vedere il risultato come segue:
default 192.168.195.1 UGSc 14 0 en2
Se sei interessato a trovare solo l'indirizzo ip del gateway e nient'altro puoi filtrare ulteriormente il risultato usando awk . Il comando awk corrisponde al pattern nel risultato dell'input e visualizza l'output. Ciò può essere utile quando si utilizza il risultato direttamente in un programma o in un lavoro batch.
netstat -rn | grep 'default' | awk '{print $2}'
Il comando awk dice di abbinare e stampare la seconda colonna del risultato nel testo. Il risultato finale appare quindi così:
192.168.195.1
In questo caso, netstat mostra tutti i risultati, grep seleziona solo la riga con "default" e awk fa corrispondere ulteriormente il modello per visualizzare la seconda colonna nel testo.
Allo stesso modo puoi usare route -n get default command per ottenere il risultato richiesto. Il comando completo è
route -n get default | grep 'gateway' | awk '{print $2}'
Questi comandi funzionano bene in Linux, nei sistemi Unix e nel sistema operativo MAC.