Oft ist es nötig seine öffentliche IP zu kennen. Sei es um Firewallregeln anzupassen oder diese in verschiedene Scripten zu verarbeiten.
Der wohl am häuftigsten gewählte Weg ist „meine IP“ ins google Suchfeld zu tippen und einen der Links zu folgen. Das Resultat ist dann meist eine mit Werbung zugepflasterte Seite mit viel zu vielen Informatioen. Die öffenliche IP-Adresse muss man dann meist zwischen den blinkenden Bannern suchen.
Alternativ kann man auch das Routermenue aufrufen. Dort findet man dann auch die gewünschte IP-Adresse.
Es geht aber auch einfacher.
Öffenliche IP per Bash ermitteln
Es gibt eine vielzahl von Webseiten die uns das gewünschte Resultat ohne viel Schnickschnack zu Verfügung stellen. Diese Seiten können wir dann ganz einfach mit den Boardmittel aufrufen und haben unsere Infos. Wie man solch eine Seite selber erstellen kann beschreibe ich zum Schluss des Tutorials.
Wir benutzen die Kommandos curl und wget. Welchen Befehl man verwendet ist Geschmachssache.
Der Aufruf mit curl erfolgt z.B. so:
# curl https://shtuff.it/myip/short/ 72.241.236.161
Oder so mit dem Befehl wget:
# wget -O - -q icanhazip.com 73.140.226.61
Um die IP in eine Variable abzuspeichern gehen wir wie folgt vor:
# myip=`curl -s https://shtuff.it/myip/short/`
Der Parameter -s verhindert lästige Ausgaben beim Download. Um die Variable anzuzeigen rufen wir den Befehl echo.
# echo $myip 72.241.236.161
Auf diesem Weg kann man die öffentliche IP auch in Scripten verwenden.
URL mit Ausgabe von eigener IP erstellen
Möchte man sich unabhängig von der Verfügbarkeit und den Anbietern solcher Seiten machen kann man das Ganze auch einfach selber hosten. Dazu erstellen wir uns eine php-Datei mit folgenden Inhalt.
<?php echo $_SERVER['REMOTE_ADDR']; ?>
Diese Datei legen wir dann auf einen Webspace mit PHP-Unterstützung und schon ist das Problem gelöst.
Wenn wir die URL dieser Datei nun mit den uns bekannten Kommandos aufrufen erhalten wir das gleiche Ergebnis und sind nicht auf andere Anbieter angewiesen. Damit Andere diese URL nicht misbrauchen empfehle ich z.B. einen Schutz per BasicAuth einzubauen.
Weitere Infos zu den einzelnen Befehlen gibt es wie immer in dem Manpages oder auf den Webseiten zu curl und wget.