Eigene externe IP-Adresse herausfinden
Man kann uPNP nutzen, um am eigenen Router die aktuelle externe IP-Adresse abzufragen.
Ein DSL- oder Kabel-Router hat in der Regel die Fähigkeit, die aktuelle externe IP-Adresse an einen oder mehrere Empfänger wie z.B. dynamische DNS-Anbieter zu melden. Wenn das für die eigenen Belange nicht ausreichend ist, gibt es eine Reihe von Möglichkeiten. Die nachfolgend beschriebene funktioniert, wenn der Router uPNP-fähig ist.
Wenn man uPNP am Router eingeschaltet hat, dann muss man nur auf einem Rechner, der im gleichen Subnetz wie der Router steht, das Paket »miniupnpc« installieren, das bei den meisten Distributionen dabei sein sollte.
In diesem Paket findet man das Skript »external-ip« oder »external-ip.sh«. Dessen Aufruf sollte nach einem kleinen Moment die aktuelle eigene IP-Adresse des Routers anzeigen. Problem gelöst!
Das Skript macht in einer einzigen Zeile genau das, was jeder Admin nach kurzem Testen des Programms upnpc auch so hingeschrieben hätte:
upnpc -s | grep ExternalIPAddress | sed 's/[^0-9\.]//g'
Wenn man die Ausgabe in einem eigenen Skript oder Programm verwenden will, ist es ratsam, nicht »external-ip«, sondern obige Zeile direkt oder in abgewandelter Form zu verwenden. Da upnpc im Wesentlichen auf einer Bibliothek (libminiupnpc) beruht, sollte man zumindest in C- oder C++-Programmen diese direkt verwenden.