So erhalten Sie Ihre öffentliche IP-Adresse in einem Linux-Bash-Skript

Veröffentlicht: 2022-11-12
Laptop auf blauem Hintergrund mit einer Linux-Eingabeaufforderung.
fatmawati achmad zaenuri/Shutterstock.com
Sie können Ihre externe IP von einer Website mit dem Curl-Befehl wie "curl -s ifconfig.me" abrufen. Websites können sich jedoch ändern. Verwenden Sie für eine zuverlässigere Antwort stattdessen den dig-Befehl wie „dig @resolver1.opendns.com myip.opendns.com +short“, um Ihre IP von einem DNS-Server zu erhalten.

Sie benötigen Ihre externe IP-Adresse, wenn Sie sich remote mit Ihrem Computer verbinden möchten. Es ist einfach, es manuell zu finden, aber hier erfahren Sie, wie Sie es in einem Linux-Skript finden.

Interne und externe IP-Adressen

Internet Protocol-Adressen werden verwendet, um Geräte in einem Netzwerk zu identifizieren. Sie sind eine eindeutige Bezeichnung im Netzwerk, die einem einzelnen Gerät zugewiesen ist. Wenn ein anderes Gerät Daten an dieses Gerät senden möchte, kann es dies über seine IP-Adresse tun.

Wie funktionieren IP-Adressen?
RELATED Wie funktionieren IP-Adressen?

Ihr Breitbandmodem verfügt über einen integrierten Netzwerkrouter, der den Netzwerkverkehr von Gerät zu Gerät durch das Netzwerk leitet. Es ist auch die lokale Behörde, die Geräten IP-Adressen zuweist, wenn sie dem Netzwerk beitreten. Es verwaltet auch eine Tabelle mit Netzwerknamen und IP-Adressen. Auf diese Weise können Sie den Computern in Ihrem Netzwerk aussagekräftige Namen geben, da es für Menschen einfacher ist, mit Namen zu arbeiten als mit Zahlenlisten.

Auch Geräte im Internet haben eine IP-Adresse. Einige von ihnen haben auch Namen, wie z. B. Websites. Domain Name Service-Anbieter suchen Website-Domainnamen und tauschen sie automatisch gegen IP-Adressen aus.

Ihr Breitbandmodem erhält von Ihrem Internetdienstanbieter (ISP) eine eigene mit dem Internet verbundene oder externe IP-Adresse. Unabhängig von der Anzahl der mit dem Internet verbundenen Geräte bei Ihnen zu Hause geht der gesamte Datenverkehr über diese einzige IP-Adresse.

Wenn Sie nicht in der Stadt sind und sich mit einem Dienst verbinden möchten, den Sie auf einem der Computer bei Ihnen zu Hause ausgeführt haben, müssen Sie dazu Ihre externe IP-Adresse verwenden. Ihr Router muss natürlich so eingerichtet sein, dass er Ihre Verbindungsanfrage an das entsprechende Gerät in Ihrem Zuhause weiterleitet.

Sofern Sie Ihrem ISP nicht jeden Monat einen kleinen Aufpreis für eine statische IP-Adresse zahlen, kann sich Ihre externe IP-Adresse von Zeit zu Zeit ändern. Ein Neustart Ihres Breitbandmodems kann durchaus dazu führen, dass Sie eine andere externe IP-Adresse erhalten. Wenn Sie also Ihre externe IP-Adresse wissen müssen, können Sie diese nicht einfach einmal überprüfen und speichern. Sie müssen regelmäßig feststellen, was es ist.

Finden Sie Ihre externe IP-Adresse

Um Ihre externe IP-Adresse zu ermitteln, müssen Sie mit etwas sprechen, das sich außerhalb Ihres Netzwerks befindet. Mit anderen Worten, der Zugriff auf etwas im Internet, das uns die gewünschten Informationen liefern kann. Wir müssen ins Leere blicken und sehen, was auf uns zurückblickt. Und fragen Sie dann nach unserer externen Adresse.

Es gibt zwei Möglichkeiten, wie wir dies tun können. Ein Weg betrifft Websites. Es gibt viele Websites, die Ihnen zeigen, was Ihre externe IP-Adresse ist, und auch eine Reihe anderer Informationen. Sie können in Ihrem Browser darauf zugreifen oder ein Befehlszeilentool wie curl verwenden, das HTTPS-Anfragen stellen kann.

Die andere Möglichkeit besteht darin, einen dedizierten Befehl wie dig zu verwenden. Der Befehl dig fragt DNS-Server ab, um Informationen abzurufen.

Verwenden eines Browsers

Natürlich ist die Verwendung eines Browsers keine skriptfreundliche Methode, um Ihre externe IP-Adresse zu erhalten. Aber der Blick auf eine Website, die diesen Service anbietet, kann uns nützliche Informationen liefern. Früher haben wir ip4.me empfohlen, aber die Seite wurde nicht auf HTTPS aktualisiert. Es verwendet immer noch das ältere, unsichere HTTP. Die Seite funktioniert immer noch, aber es gibt jetzt bessere Alternativen.

Die ifconfig.me-Site bietet eine gute Reihe von Informationen.

Die ifconfig.me-Website, die eine externe IP-Adresse anzeigt

Dies meldet unsere externe IP als 178.238.11.140. Wenn Sie durch die Webseite nach unten scrollen, finden Sie eine Liste mit Befehlen, mit denen Sie Informationen von der Website abrufen können.

Die ifconfig.me-Website, die eine Reihe von cURL-Befehlen anzeigt

Die Beispiele, die sie geben, verwenden alle curl , um die Site zu befragen. Werfen wir also einen Blick auf die Verwendung von curl .

Curl verwenden

Auf unseren Testmaschinen war Fedora 37 bereits curl installiert. Wir mussten es auf unseren Ubuntu- und Manjaro-Computern installieren.

Um es unter Ubuntu zu installieren, geben Sie Folgendes ein:

 sudo apt install curl 

Curl unter Ubuntu installieren

Der Befehl auf Manjaro lautet:

 sudo pacman -S curl 

Curl auf Manjaro installieren

Wir können dies mit dem ersten Befehl ausprobieren, der auf der Webseite ifconfig.me aufgeführt ist.

 curl ifconfig.me 

Abrufen einer externen IP-Adresse mithilfe der Standardaktion der ifconfig.me-Website

Unsere externe IP-Adresse wird abgerufen und im Terminalfenster angezeigt. Die Ausgabe ist nackt. Es wird nicht einmal ein Zeilenumbruchzeichen nach der Zeichenfolge gedruckt. Die Eingabeaufforderung wird direkt an die IP-Adresse gestoßen.

So verwenden Sie curl zum Herunterladen von Dateien von der Linux-Befehlszeile
RELATED So verwenden Sie curl zum Herunterladen von Dateien von der Linux-Befehlszeile

Dieser Befehl funktioniert, weil die Rückgabe der IP-Adresse die Standardaktion der Website ist. Wenn sich die Standardaktion jemals ändert, erhalten wir möglicherweise ein anderes Ergebnis zurück. Um dies zu gewährleisten, können wir angeben, dass wir unsere IP-Adresse anfordern, indem wir der URL die Kennung „ip“ hinzufügen.

 curl ifconfig.me/ip 

Abrufen einer externen IP-Adresse über die Website ifconfig.me mit dem IP-Spezifizierer

Dies gibt die IP-Adresse wie zuvor zurück.

Dies verdeutlicht das Problem bei der Verwendung einer Website als Quelle Ihrer IP-Adresse. Websites können geschlossen werden oder ihre Funktionsweise oder das Format der zurückgegebenen Informationen ändern. Diese Änderungen führen dazu, dass Skripts, die von diesen Sites abhängen, entweder fehlschlagen oder sich unvorhersehbar verhalten.

Die Verwendung einer seriösen und zuverlässigen Ressource wie eines DNS-Servers ist eine robustere Methode, um Ihre externe IP-Adresse zu erhalten. Um einen DNS-Server abzufragen, müssen wir den Befehl dig verwenden.

VERWANDT: Was ist DNS und sollte ich einen anderen DNS-Server verwenden?

Verwenden des dig-Befehls

Dieses Mal wurde dig auf Fedora und Ubuntu installiert, und wir mussten es nur auf Manjaro installieren.

Der Befehl ist der übliche pacman -Befehl, also keine Überraschungen, aber der Paketname ist nicht das, was Sie vielleicht erwarten.

 sudo pacman -S Bindewerkzeuge 

Installation von dig auf Manjaro

Um mit dig unsere externe IP-Adresse zu ermitteln, müssen wir sie auf einen DNS-Server verweisen. Wir verwenden den OpenDNS-Server, der von Cisco bereitgestellt wird.

Wir müssen den Namen des DNS-Servers angeben, den wir verwenden möchten, gefolgt von einem At-Zeichen „@“. Wir müssen auch den Datensatztyp benennen, den wir abrufen möchten. In diesem Fall ist es „myip“. Die Option +short stellt sicher, dass wir eine knappe und keine ausführliche Antwort erhalten.

 dig @resolver1.opendns.com myip.opendns.com +short 

Abrufen einer externen IP-Adresse von einem DNS-Server mit dem Befehl dig

Dieses Mal wird unserer IP-Adresse ein Zeilenumbruchzeichen nachgedruckt. Wie wir sehen werden, wird dies nach der Zeichenfolge der IP-Adresse gedruckt, es ist kein integraler Bestandteil der Zeichenfolge selbst.

VERWANDT: So verwenden Sie den Befehl dig unter Linux

Diese in einem Skript verwenden

Es gibt viele Gründe, warum Sie Ihre externe IP-Adresse aus einem Skript wissen möchten. Vielleicht haben Sie ein Skript, das überwacht, ob sich Ihre externe IP-Adresse geändert hat, und Sie benachrichtigt, wenn dies der Fall ist. Oder vielleicht benachrichtigt ein Server seine Clients, wenn sich seine Adresse ändert. Was auch immer Ihre Gründe sind, wir können die Befehle, die wir auf der Befehlszeile verwendet haben, ganz einfach in einem Skript implementieren.

Um unsere externe IP-Adresse abzurufen und sie einer Variablen zuzuweisen, müssen wir den Befehl nur in eine Befehlssubstitution $(...) einschließen und ihn wie folgt einer Variablen zuweisen:

 Variable=$(...)

Der Befehl in den Klammern wird ausgeführt und der Rückgabewert ersetzt den Ausdruck. In diesem Beispiel wird der Befehl zu „Variable=Rückgabewert“ vereinfacht.

VERWANDT: So arbeiten Sie mit Variablen in Bash

Hier ist es in einem Skript. Wir haben dem curl -Befehl die Option -s (silent) hinzugefügt, um zu verhindern, dass er den Fortschritt des Datenabrufs meldet.

 #!/bin/bash

extaddr=$(curl -s ifconfig.me)

echo "Die externe IP-Adresse ist $extaddr (von cURL)"

Kopieren Sie dieses Skript in einen Editor, speichern Sie es als „getex1.sh“ und machen Sie es mit dem Befehl chmod ausführbar.

 chmod +x getex1.sh 

Mit chmod ein Skript ausführbar machen

Lassen Sie uns das Skript ausführen und sehen, was wir bekommen.

 ./getex1.sh 

Ausführen des Skripts getex1.sh

Um dasselbe mit der robusteren Option zu tun, einen DNS-Server anstelle einer Website zu verwenden, müssen wir nur den curl -Befehl durch den dig -Befehl ersetzen.

 #!/bin/bash

extaddr=$(dig @resolver1.opendns.com myip.opendns.com +kurz)

echo "Die externe IP-Adresse ist $extaddr (von dig)"

Speichern Sie dieses als Skript „getex2.sh“ und machen Sie es mit chmod ausführbar.

 chmod +x getex2.sh 

Mit chmod ein Skript ausführbar machen

Lassen Sie uns dieses Skript ausführen.

 ./getex2.sh 

Ausführen des Skripts getex2.sh

Wir können aus der Ausgabe der beiden Skripte ersehen, dass trotz des Befehls dig , der ein Zeilenumbruchzeichen auf der Befehlszeile ausgibt, im Skript kein Zeilenumbruch zur Variablen extaddr hinzugefügt wird.

Entscheiden Sie sich für Zuverlässigkeit

Es ist immer sicherer, einen anerkannten Dienst zu verwenden, der seriös ist und ein vorhersehbares Ausgabeformat hat, als eine „inoffizielle“ Website zu verwenden. Achten Sie wie bei allem anderen im Internet genau darauf, von wem Sie Ihre Informationen erhalten.'

RELATED: So lassen Sie Linux-Skripts erkennen, dass sie in virtuellen Maschinen ausgeführt werden