Welchen Befehl kann ich ausführen, um nur die IP-Adresse meines Routers abzurufen?
Mit diesem Befehl sollte ich nur die IP meines Routers haben und nicht zum Beispiel die ganze Routing-Tabelle (wie wenn ich sie laufen lasse route -n
).
quelle
Welchen Befehl kann ich ausführen, um nur die IP-Adresse meines Routers abzurufen?
Mit diesem Befehl sollte ich nur die IP meines Routers haben und nicht zum Beispiel die ganze Routing-Tabelle (wie wenn ich sie laufen lasse route -n
).
Einzeiler:
nm-tool | grep -i gateway | xargs echo | cut -d' ' -f2
nm-tool | grep -i gateway | awk '{print $2}
netstat -nr | awk '$1 == "0.0.0.0"{print$2}'
arp -n | awk '{print $1}'
Hinweis: Funktioniert nur, wenn Ihr Computer der einzige im Netzwerk istip route show | grep -i 'default via'| awk '{print $3 }'
Ausgabe: 192.168.0.1
für mich
HINWEIS :
Für 15.04 und später gibt es keine nm-tool
, also benutze nmcli dev show <IFACE>
. Beispielsweise,
$ nmcli dev show wlan7 | grep GATEWAY
IP4.GATEWAY: 192.168.0.1
IP6.GATEWAY:
Bearbeitungen und zusätzliche Infos
Wie Sie an der Prüfung des Befehls sehen können, nehmen wir die Ausgabe von nm-tool
(die, wie zu beachten ist, Informationen aus dem NetworkManager entnimmt), suchen die Zeile mit dem Wort gateway
, drucken als Informationen mit dem Echo (durch Leerzeichen getrennt) und schneiden dann nur das zweite Element dieses Ganzen ab Ausgabe. Beachten Sie, dass Sie, wenn Sie zwei oder mehr Verbindungen dort haben, möglicherweise ein oberes xargs echo | cut -d' ' -f2
Teil entfernen und es durch ein awk '{print $2}'
neues ersetzen müssen . mit anderen Worten würde die ganze Zeile so aussehen nm-tool | grep -i gateway | awk '{print $2}'
. Alternativ hättest du nm-tool | grep -oP '(?i)gateway:\s*\K\S+'
Avinash Rajs Vorschlag in den Kommentaren verwenden können. Wie Sie sehen, wird hier nichts Besonderes getan, und die ganze Prüfung hier ist lediglich eine Übung zur Verwendung von Ausgabebearbeitungswerkzeugen wie cut, awk und grep.
Eine andere Methode zum Abrufen der Gateway-Informationen ist der nmcli dev list
Befehl (Ja, immer noch auf den Netzwerkmanager angewiesen). nmcli
ist die Befehlszeilenversion von Network Manager. Du nmcli dev list | grep -i routers
könntest rennen oder du könntest rennen nmcli dev list | grep -i 'gw ='
. Auch hier können Sie alle anderen Informationen außer der gewünschten IP-Adresse abschneiden, wenn Sie dies möchten.
Da es in der ursprünglichen Frage nur darum ging, das Standard-Gateway zu drucken, verlasse ich mich hier auf die Ausgabe von nm-tool. NetworkManager wird standardmäßig mit Ubuntu ausgeliefert. Dies ist die Standardmethode für die Verwaltung der Ubuntu-Netzwerkverbindungen. Wenn Sie etwas anderes verwenden, z. B. wicd oder eine Verbindung über wpa_cli, erhalten Sie von nm-tool keine Antwort. In diesem Fall sind die Antworten anderer möglicherweise nützlicher.
Eine eher distro-neutrale und konfigurationsneutrale Option wäre netstat -n
die Verwendung einer Kernel-Routing-Tabelle, ähnlich der route -n
. Die Ausgabe ist unten, nichts überraschendes.
Destination Gateway Genmask Flags Metric Ref Use Iface
0.0.0.0 192.168.0.1 0.0.0.0 UG 0 0 0 wlan0
192.168.0.0 0.0.0.0 255.255.255.0 U 9 0 0 wlan0
Und so schneiden Sie Ihre gewünschten Informationen aus: netstat -nr | awk '$1 == "0.0.0.0"{print$2}'
Ein anderer, auch neutral: arp -n | awk '{print $1}'
nm-tool | grep -oP '(?i)gateway:\s*\K\S+'
eth0
undwlan0
sowohl aktiv verbunden , sondern mit einem Gateway nur konfiguriertwlan0
,nm-tool | grep -i gateway | xargs echo | cut -d' ' -f2
Ausgänge lediglich0.0.0.0
.nm-tool | grep -oP '(?i)gateway:\s*\K\S+'
gibt zwei Zeilen aus:0.0.0.0
gefolgt von192.168.1.1
. (Dieip route ...
undroute -n ...
Wege produzieren gerade192.168.1.1
, was ich als das wünschenswerteste Ergebnis betrachten würde.)network-manager
z. B.ifupdown
oder verwaltet wird. Inifconfig
diesen Fällennm-tool
wird die gewünschte Ausgabe nicht generiert. Kurz gesagt, diese Antwort beruht ausschließlich auf dem Netzwerk, das von verwaltet wirdnetwork-manager
.Sie können es auf viele Arten finden
Eine bessere Frage, was oder wie möchten Sie die Ausgabe gestalten?
Aus den Kommentaren - (Danke Avinash Raj 0
quelle
uniq
nurtracepath -m 1 8.8.8.8 | awk '/1:/ {print $2;exit}'
5in o sein.tracepath
unterstützt-m
auf einigen Versionen von Ubuntu, aber nicht auf anderen .Wie gewohnt
route -n
können Sie diesesed
Lösung in Verbindung mitroute -n
folgenden Komponenten ausprobieren :Hier ist ein Test:
Ein anderer Weg wäre
grep
:Wie @AvinashRaj darauf hingewiesen hat, kann dies nur mithilfe von erfolgen
grep
(keine Notwendigkeit, die Leerzeichen mithilfe von zu quetschentr
):quelle
tr
, grep allein erledigt den Jobroute -n | grep -Po "0\.0\.0\.0 \s*\K\S+(?=\s*0\.0\.0\.0)"
Ich benutze dieses ziemlich oft:
quelle
192.168.0.1
?Wenn Sie Zugriff auf einen Webbrowser auf dem System haben, können Sie http://whatsmyrouterip.com/ aufrufen und Ihre IP-Adresse sollte ohne Befehl gefunden werden können.
Ansonsten reicht es aus, einfach das Terminal zu öffnen und ein
ip route | grep default
zu machen. Je nach Netzwerkschnittstelle kann es mehrere geben.quelle
Ich benutze dies ziemlich oft und leicht zu merken:
quelle
190.200.200.107 172.21.0.1 172.17.0.1 172.19.0.1 172.18.0.1
also nur die IP ausgabe bekommen
190.200.200.107
quelle