Для отримання списку пов’язаних 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 вибирає лише рядок із 'за замовчуванням' у ньому, а awk додатково відповідає шаблону для відображення другого стовпця в тексті.
Можна також використовувати команду route -n get default, щоб отримати необхідний результат. Повна команда є
route -n get default | grep 'gateway' | awk '{print $2}'
Ці команди добре працюють як в Linux, так і в Unix системах та MAC OS.