Pour obtenir la liste des adresses IP associées, vous pouvez utiliser la commande netstat
netstat -rn
Cela donne une longue liste d'adresses IP et il n'est pas facile de trouver le champ requis. Le résultat de l'échantillon est le suivant:
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'adresse IP de la passerelle est sur la première ligne; un avec la valeur par défaut dans sa première colonne.
Pour n'afficher que les lignes de résultat sélectionnées, nous pouvons utiliser la commande grep avec netstat
netstat -rn | grep 'default'
Cette commande filtre et affiche les lignes de résultat par défaut. Dans ce cas, vous pouvez voir le résultat comme suit:
default 192.168.195.1 UGSc 14 0 en2
Si vous souhaitez trouver uniquement l'adresse IP de la passerelle et rien d'autre, vous pouvez filtrer davantage le résultat en utilisant awk . La commande awk correspond au modèle dans le résultat d'entrée et affiche la sortie. Cela peut être utile lorsque vous utilisez votre résultat directement dans un programme ou un travail par lots.
netstat -rn | grep 'default' | awk '{print $2}'
La commande awk indique de faire correspondre et d'imprimer la deuxième colonne du résultat dans le texte. Le résultat final ressemble donc à ceci:
192.168.195.1
Dans ce cas, netstat affiche tous les résultats, grep sélectionne uniquement la ligne contenant «default», et awk correspond davantage au modèle pour afficher la deuxième colonne dans le texte.
Vous pouvez de même utiliser la commande route -n get default pour obtenir le résultat requis. La commande complète est
route -n get default | grep 'gateway' | awk '{print $2}'
Ces commandes fonctionnent bien sous Linux ainsi que sur les systèmes Unix et MAC OS.