Externe IP Adresse abfragen
Wie kann man die eigene externe IP Adresse abfragen? Viele von euch kennen das Problem vermutlich. Im eigenen Netzwerk kennt man jedes einzelne Gerät an seiner IP Adresse, aber welche IP Adresse man nach außen ins große weltweite Netz man hat weiß man nicht.
Externe IP Adresse abfragen
Eine IP Adresse ist eine eindeutige Zuordnung eines Rechners in einem Netzwerk. Im Internet hat jeder Rechner eine solche Adresse, diese ist nicht die IP Adresse die man aus dem eigenen Netzwerk kennt. Üblicherweise ändert der Provider diese externe IP Adresse immer wieder, man bekommt zufällig eine aus einem Pool zugewiesen. Sofern man also keine fixe IP Adresse besitzt ist das für den Betrieb eines Servers oder eines Services sehr schlecht!
Motivation
Warum brauche ich diese Information?
- wenn man zB wieder mal ein Spiel hosten will und man seinen Freunden die IP Adresse geben muss zu der sie sich verbinden sollen
- will man extern auf sein Heimnetzwerk zugreifen (zB: über SSH oder VNC), dann braucht man auch die externe IP Adresse.
Ich denke es gibt auch noch mehr Anwendungsfälle.
Hat man eine fixe IP von seinem Internetprovider, dann stellt sich das Problem eigentlich gar nicht. Normalerweise leistet sich aber kein privater Haushalt einen ab ca. 50€ pro Monat teuren Internetanschluss. Selbst ich als selbstständiger Entwickler brauche keine statische IP. Bei einem durchschnittlichen Angebot eines Providers wird nur eine dynamische IP vergeben, d.h. jedesmal wenn man seinen Router neu startet hat man eine andere IP Adresse.
Glücklicherweise kann man ganz einfach seine externe IP Adresse abfragen. Ein Beispiel dazu ist der Open Port Checker. Dort kann man zusätzlich auch einzelne Ports abfragen, sollte man auf seinem Router Portforwarding aktiviert haben.
Das Problem
Aus dem eigenen Netz heraus kann man also ganz einfach seine externe IP ermitteln. Was mache ich aber, wenn ich nun im Urlaub bin und mein Router startet nach einem Stromausfall neu? Plötzlich komme ich nicht mehr über meine alte IP Adresse in mein Heimnetzwerk und an meine wichtigen Daten…
Abhilfe schafft hier ein kleines Programm.
PHP Skript
<?php $externalContent = file_get_contents('http://checkip.dyndns.com/'); preg_match('/\b(?:\d{1,3}\.){3}\d{1,3}\b/', $externalContent, $m); $externalIp = $m[0]; mail('max.mustermann@test.com', 'Externe IP', $externalIp);
Abhilfe schafft hier dieses kleine PHP Programm. Dieses Skript fragt die externe IP über ein Service ab und schickt dieses an eine Email Adresse. Dieses Skript kann man über einen Cron-Job periodisch laufen lassen oder auch direkt beim Systemstart automatisch ausführen lassen. So hat man über ein Mail immer seine aktuelle externe IP Adresse des Heimnetzwerks.
Probleme
Für dieses Skript benötigt man sendmail. Sollte man also folgende Fehlermeldung bekommen:
sh: 1: /usr/sbin/sendmail: not found
dann muss man sendmail installieren:
apt-get install sendmail
Vielen Dank für Ihren Beitrag, ist genau das was ich gesucht habe.
Kann leider nicht programmieren. Am liebsten hätte ich nur ein Mail wen die IP wirklich ändert. Sprich die IP wird in einem File zwischen gespeichert und mit der aktuellen Abfrage verglichen. Bei einem Unterschied wird das Mail generiert und die aktuelle IP wieder in das File geschrieben.