Mit welchem Befehl können Sie die Gateway-IP-Adresse (dh die Adresse des Heimrouters) für eth0 unter Linux ermitteln?
Ich muss die IP-Adresse von einer Befehlszeilen-App abrufen, um sie in einem Shell-Skript verwenden zu können.
Mit welchem Befehl können Sie die Gateway-IP-Adresse (dh die Adresse des Heimrouters) für eth0 unter Linux ermitteln?
Ich muss die IP-Adresse von einer Befehlszeilen-App abrufen, um sie in einem Shell-Skript verwenden zu können.
Antworten:
So drucken Sie nur die Standard-GW-IP aus:
route -n | grep 'UG[ \t]' | awk '{print $2}'
So drucken Sie Routeninformationen auf allen Schnittstellen aus:
route -n
oder
netstat -rn
route -n | awk '{if($4=="UG")print $2}'
route -n|awk '$4~/G/{print $2; exit(0)}'
für das erste Gateway vorschlagen , ist aber ip route get IP
besser, weil es die Route auflistet, die wirklich zu der angegebenen IP geführt wird, die route
allein mit schwer zu finden ist
ip route show 0.0.0.0/0 dev eth0 | cut -d\ -f3
ist mein Eintrag :)
cut
ist ~ 20 mal leichter binär als awk
.
Sie können das Standard-Gateway des Systems über die Ausgabe von netstat -r
oder abrufenroute
$ netstat -rn
Kernel IP routing table
Destination Gateway Genmask Flags MSS Window irtt Iface
192.168.199.0 0.0.0.0 255.255.255.240 U 0 0 0 virbr1
192.168.200.0 0.0.0.0 255.255.255.240 U 0 0 0 virbr2
192.168.1.0 0.0.0.0 255.255.255.0 U 0 0 0 wlan0
192.168.122.0 0.0.0.0 255.255.255.0 U 0 0 0 virbr0
0.0.0.0 192.168.1.254 0.0.0.0 UG 0 0 0 wlan0
Die 0.0.0.0 ist Ihr Standard-Gateway und zeigt an meiner Stelle auf 192.168.1.254.
Ich bevorzuge das iproute- Paket:
# get the default route
ip route list | awk ' /^default/ {print $3}'
# get the default route but limit on eth0 (output may be empty)
ip route list dev eth0 | awk ' /^default/ {print $3}'
jemand kürzer als das? =)
ip r | awk '/^def/{print $3}'
ip r | awk 'END{print $3}'
ist drei Zeichen kürzer.
read x x i x< <(ip r g 1)
, Ergebnis ist in Variable $ i für die weitere Verwendung
netstat -rn |awk '{if($1=="0.0.0.0") print $2}'
Dadurch wird die Gateway-IP sauber gedruckt. (Was wäre Linux Scripting ohne awk ?)
netstat -rn|sed -n '/^0.0.0.0/{ s/^[0. ]*//; s/ .*$//; p; }
Terminal unter Ihrem Linux-Betriebssystem öffnen Es befindet sich normalerweise in der oberen oder unteren Leiste, abhängig von der verwendeten Linux-Distribution. Geben Sie nach dem Öffnen des Terminal-Fensters die folgenden Befehle ein: „ip route | grep default ”Warten Sie nun eine Sekunde auf die Ausgabe und notieren Sie Ihre Standard-Gateway-Adresse auf dem Bildschirm. Ihre Gateway-Adresse sollte ungefähr wie 192.168.1.1 aussehen. Sobald Sie es wissen, können Sie mit der Konfiguration Ihres Routers über das Webadministrationsfenster beginnen.
Wenn dies Ihr Netzwerk nicht repariert hat, benötigen Sie möglicherweise einen neuen Router.