AVM FRITZ!Box: Externe IP-Adresse per Shell-Skript über UPnP auslesen
Um die externe IP-Adresse ihres Routers zu ermitteln, welche diesem beim Verbindungsaufbau von Ihrem Provider zugeteilt wurde, können Sie wie bereits auf der Seite Externe IP-Adresse ermitteln beschrieben einen Webserver im Internet befragen, damit dieser die IP-Adresse aus dem HTTP-Request anzeigt. Sollten Sie eine AVM FRITZ!Box mit aktiviertem UPnP als Router einsetzen, können Sie die externe IP-Adresse auch direkt von der FRITZ!Box abfragen. Die folgende Beschreibung soll Ihnen zeigen, wie Sie die IP-Adresse unter Linux mit einem Shell-Skript abrufen können.
Das folgende Skript wurde bereits erfolgreich mit den folgenden Geräten getestet:
- AVM FRITZ!Box Fon WLAN 7390
- AVM FRITZ!Box Fon WLAN 7490
Hinweis: Auf der FRITZ!Box muss UPnP aktiviert sein. Überprüfen Sie deshalb ob die Einstellung Statusinformationen über UPnP übertragen aktiviert ist.
Zuerst erstellen Sie mit einem Editor die Datei external_ip.xml. Diese Datei enthält die UPnP-Informationen, welche später in einem POST-Request an die FRITZ!Box gesendet werden.
georg@ubuntu1404:~$ vi external_ip.xml
Fügen Sie die folgenden Zeilen in diese Datei ein.
<?xml version="1.0" encoding="utf-8" ?>
<s:Envelope s:encodingStyle="http://schemas.xmlsoap.org/soap/encoding/" xmlns:s="http://schemas.xmlsoap.org/soap/envelope/">
<s:Body>
<u:GetExternalIPAddress xmlns:u="urn:schemas-upnp-org:service:WANIPConnection:1" />
</s:Body>
</s:Envelope>
<s:Envelope s:encodingStyle="http://schemas.xmlsoap.org/soap/encoding/" xmlns:s="http://schemas.xmlsoap.org/soap/envelope/">
<s:Body>
<u:GetExternalIPAddress xmlns:u="urn:schemas-upnp-org:service:WANIPConnection:1" />
</s:Body>
</s:Envelope>
Danach erstellen Sie das eigentliche Skript welches die UPnP-Informationen an die FRITZ!Box sendet.
georg@ubuntu1404:~$ vi external_ip.sh
Wenn Sie eine AVM FRITZ!Box 7490 oder eine AVM FRITZ!Box 7390 mit der jeweils aktuellen FRITZ!OS Version verwenden, fügen Sie die folgenden Zeilen in die external_ip.sh ein.
#!/bin/bash
curl -s "http://fritz.box:49000/igdupnp/control/WANIPConn1" -H "Content-Type: text/xml; charset="utf-8"" -H "SoapAction:urn:schemas-upnp-org:service:WANIPConnection:1#GetExternalIPAddress" -d "@external_ip.xml" | grep -Eo "\<[[:digit:]]{1,3}(\.[[:digit:]]{1,3}){3}\>"
curl -s "http://fritz.box:49000/igdupnp/control/WANIPConn1" -H "Content-Type: text/xml; charset="utf-8"" -H "SoapAction:urn:schemas-upnp-org:service:WANIPConnection:1#GetExternalIPAddress" -d "@external_ip.xml" | grep -Eo "\<[[:digit:]]{1,3}(\.[[:digit:]]{1,3}){3}\>"
Sollten Sie hingegen eine AVM FRITZ!Box 7390 mit FRITZ!OS 06.03 oder einer älteren Firmware einsetzen, müssen Sie die folgenden Zeilen in die external_ip.sh einfügen.
#!/bin/bash
curl -s "http://fritz.box:49000/upnp/control/WANIPConn1" -H "Content-Type: text/xml; charset="utf-8"" -H "SoapAction:urn:schemas-upnp-org:service:WANIPConnection:1#GetExternalIPAddress" -d "@external_ip.xml" | grep -Eo "\<[[:digit:]]{1,3}(\.[[:digit:]]{1,3}){3}\>"
curl -s "http://fritz.box:49000/upnp/control/WANIPConn1" -H "Content-Type: text/xml; charset="utf-8"" -H "SoapAction:urn:schemas-upnp-org:service:WANIPConnection:1#GetExternalIPAddress" -d "@external_ip.xml" | grep -Eo "\<[[:digit:]]{1,3}(\.[[:digit:]]{1,3}){3}\>"
Hinweis: Standardmäßig kann die FRITZ!Box unter fritz.box angesprochen werden. Sollte dies bei Ihnen nicht der Fall sein, müssen Sie im Skript stattdessen die IP-Adresse oder den gültigen Domainnamen angeben.
Nachdem Sie das Skript erstellt haben, müssen Sie noch die Rechte ändern.
georg@ubuntu1404:~$ chmod u+x external_ip.sh
Wenn Sie jetzt das Skript external_ip.sh aufrufen, wird die aktuelle externe IP-Adresse von der FRITZ!Box abgefragt und angezeigt.
georg@ubuntu1404:~$ ./external_ip.sh
84.146.11.139
84.146.11.139
Dieser Eintrag wurde am 24.03.2014 erstellt und zuletzt am 24.01.2016 bearbeitet.
Direkter Link zu dieser Seite: http://www.gtkdb.de/index_7_2570.html
[ Zur Startseite ] [ Zur Kategorie ]
© 2004-2021 by Georg Kainzbauer