J'ai eth0 et wlan0 selon ifconfig et je peux le faire ping google.com
. Comment puis-je savoir (avec un utilisateur normal, pas avec root) quelle interface est active , par exemple, quelle interface le ping (ou autre, le ping n'est-il pas obligatoire) utilisait-il?
NOTE: en utilisant Ubuntu 11.04 ou Fedora 14
Réponses:
Vous pouvez utiliser
route
pour trouver votre route par défaut:La
Iface
colonne dans la ligne avec destinationdefault
vous indique quelle interface est utilisée.la source
route
ne peut pas être utilisé. @Torgeir a le droit de répondre.192.168.1.0...
est l'itinéraire qui sera utilisé. Bien sûr, dans ce cas, il s'agit du même Iface, mais c'est simplement parce que vous avez une interface sur votre machine.Ma version qui est essentiellement basée sur ceci et ceci :
Et ceci, expérimentalement , pour macOS:
la source
route |awk '/^default/{print $NF}'
Sur les systèmes GNU / Linux:
la source
host
s'agit d'un argument d'entrée du script. Comme la route (et donc l'interface) pourrait être différente pour différents ips.Courir
ifconfig
vous donnera les informations dont vous avez besoin.L’interface active aura un
inet addr
et montrera un enregistrement des données transmises, comme ceci:Vous pouvez également utiliser la
ip addr
commande et les interfaces inactives seront désignées comme:NO-CARRIER
.la source
/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin:/usr/games:
route
commande bien que cela ne soit pas nécessairement infaillible à cause du routage. La route par défaut ne doit pas nécessairement être celle qui permet d’accéder à Internet, même si cela se produit souvent.Bon mot:
ip route get 8.8.8.8 | sed -n 's/.*dev \([^\ ]*\) table.*/\1/p'
la source
Obtenez l'interface réseau par défaut généralement utilisée pour acheminer vers l'internet "restant", par opposition à la DMZ, le réseau privé, l'hôte de machine virtuelle, etc. qui sont généralement routés explicitement.
la source
ip -4 route ls |awk '/^default/{print $5}'
La commande
ip route ls
donnera une liste des routes actives et leurs sources:la source
Utilisez cette commande:
la source
utilisez celui ci-dessous:
la source
Si votre machine a plusieurs interfaces (ce qui, je suppose), aucune interface ne sera utilisée pour la connexion à Internet.
En fonction de la destination à laquelle vous vous connectez, votre système consultera la table ip (celle affichée lors de la
route
commande) pour trouver le prochain hope / routeur. Lorsqu'il en trouvera une, il utilisera l'interface qui lui est associée.Cela dit, veuillez vous référer à la réponse de @ torgeir, qui dit exactement cela:
la source