route -n | perl -ne '$ANY="0.0.0.0"; /^$ANY/ and split /\s+/ and print "Gateway to the World: ",($_[1]!=$ANY)?$_[1]:(`ip address show $_[$#_]`=~/peer ([0-9\.]+)/ and $1),", via $_[$#_].\n"'
Команда route -n
выводит информацию о текущей маршрутизации сети. Этот вывод передается через пайп ‘|’, в скрипт Perl, который ищет строку с шлюзом по умолчанию (0.0.0.0). Затем скрипт проверяет, если этот шлюз не равен 0.0.0.0, то он выводит его адрес и интерфейс, через который он находится. В противном случае скрипт ищет адрес пира (remote IP) из вывода команды ip address show
и выводит его вместе с интерфейсом.
Команда полезна для того, чтобы быстро найти адрес шлюза по умолчанию на Linux-системе, включая получение адреса при использовании PPP-подключений. Альтернативой может быть использование команды ip route show
, которая также выводит информацию о маршрутах, однако для получения адреса шлюза по умолчанию потребуется дополнительная обработка вывода.