Aby uzyskać listę powiązanych adresów IP, możesz użyć polecenia netstat
netstat -rn
Daje to długą listę adresów IP i nie jest łatwo znaleźć wymagane pole. Przykładowy wynik jest następujący:
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.......
Adres IP bramy znajduje się w pierwszej linii; jeden z wartością domyślną w pierwszej kolumnie.
Aby wyświetlić tylko wybrane wiersze wyniku, możemy użyć polecenia grep wraz z netstatem
netstat -rn | grep 'default'
To polecenie filtruje i wyświetla te wiersze wyniku, które mają wartość domyślną. W takim przypadku możesz zobaczyć następujący wynik:
default 192.168.195.1 UGSc 14 0 en2
Jeśli chcesz znaleźć tylko adres IP bramy i nic więcej, możesz dalej filtrować wynik za pomocą awk . Polecenie awk dopasowuje wzorzec w wyniku wejściowym i wyświetla wyjście. Może to być przydatne, gdy używasz wyniku bezpośrednio w jakimś programie lub zadaniu wsadowym.
netstat -rn | grep 'default' | awk '{print $2}'
Polecenie awk nakazuje dopasować i wydrukować drugą kolumnę wyniku w tekście. Ostateczny wynik wygląda więc następująco:
192.168.195.1
W tym przypadku netstat wyświetla cały wynik, grep wybiera tylko wiersz zawierający słowo „default”, a awk dodatkowo dopasowuje wzorzec, aby wyświetlić drugą kolumnę w tekście.
Możesz w podobny sposób użyć polecenia route -n get default, aby uzyskać wymagany wynik. Pełne polecenie to
route -n get default | grep 'gateway' | awk '{print $2}'
Te polecenia działają dobrze w systemie Linux, a także w systemach unix i MAC OS.