Для получения списка связанных IP-адресов вы можете использовать команду netstat
netstat -rn
Это дает длинный список IP-адресов, и найти нужное поле нелегко,Пример результата выглядит следующим образом:
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.......
IP-адрес шлюза находится в первой строке;один со значением по умолчанию в первом столбце.
Чтобы отобразить только выбранные строки результата, мы можем использовать команду grep вместе с netstat
netstat -rn | grep 'default'
Эта команда фильтрует и отображает те строки результата, которые имеют значение по умолчанию.В этом случае вы можете увидеть результат, подобный следующему:
default 192.168.195.1 UGSc 14 0 en2
Если вы заинтересованы в поиске только ip-адреса шлюза и ничего другого, вы можете дополнительно отфильтровать результат, используя awk .Команда awk сопоставляет шаблон во входном результате и отображает выходные данные.Это может быть полезно, когда вы используете свой результат непосредственно в какой-либо программе или пакетном задании.
netstat -rn | grep 'default' | awk '{print $2}'
Команда awk сообщает о совпадении и печатает второй столбец результата в тексте.,Таким образом, конечный результат выглядит следующим образом:
192.168.195.1
В этом случае netstat отображает весь результат, grep выбирает только строку с «default» в нем, а awk далее соответствует шаблону для отображения второго столбца втекст.
Аналогичным образом можно использовать команду route -n get по умолчанию, чтобы получить требуемый результат.Полная команда:
route -n get default | grep 'gateway' | awk '{print $2}'
Эти команды хорошо работают в Linux, а также в системах Unix и MAC OS.