ubuntuusers.de

Skripte

Dieser Artikel wurde für die folgenden Ubuntu-Versionen getestet:

Dieser Artikel ist größtenteils für alle Ubuntu-Versionen gültig.

Hinweis:

Dieser Artikel ist zwar unabhängig von der Ubuntu-Version, jedoch funktionieren die gezeigten Befehle nur jeweils nur mit den im Text vermerkten Versionen von Fritz!OS.

Letzter Test mit Fritz!Box 7490 am 09.05.2023.

Zum Verständnis dieses Artikels sind folgende Seiten hilfreich:

Über kurze Shellskripte die man in einem Terminal[1] eingibt, lassen sich verschiedene Dinge aus der FRITZ!Box auslesen oder ändern.

Öffentliche IP-Adresse auslesen

Die öffentliche IP-Adresse wird in der Konfigurationsoberfläche des Routers angezeigt und kann von dort ausgelesen werden.

Variante 1

Ein Einzeiler für die FRITZ!Box-Serie von AVM 🇩🇪:

Hinweis:

Diese Methode funktioniert nur, wenn die Oberfläche der FRITZ!Box nicht durch ein Passwort geschützt ist (was sie sein sollte).

wget 'http://fritz.box/cgi-bin/webcm?getpage=../html/de/menus/menu2.html&var:lang=de&var:menu=home&var:pagename=home' -q -O - | grep -Eo '\<[[:digit:]]{1,3}(\.[[:digit:]]{1,3}){3}\>' | grep -Ev "^0+\." 

Dies funktioniert zumindest mit der FRITZ!Box Fon WLAN 7050 mit aktueller Firmware, sollte aber auch mit anderen Modellen funktionieren.

Variante 2

Mit UPnP kann man sich die externe IP-Adresse der FRITZ!Box auch anzeigen lassen, wenn die Weboberfläche passwortgeschützt ist. Um dieses Skript ausführen zu können, muss vorher das Programm cURL installiert werden.

  • Dieser Einzeiler wurde mit der FRITZ!Box Fon WLAN 7050 und FRITZ!Box WLAN 3131 getestet. Das Skript funktioniert ebenfalls mit der FRITZ!Box 7490 bis vor einem Firmware Update auf FRITZ!OS 06.05; mit dieser Version aber nicht mehr:

    curl "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 "<?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 | grep -Eo '\<[[:digit:]]{1,3}(\.[[:digit:]]{1,3}){3}\>' 
  • Ab FRITZ!OS 06.05 funktioniert (getestet mit FRITZ!Box 7490) diese Variante:

    curl "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 "<?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 | grep -Eo '\<[[:digit:]]{1,3}(\.[[:digit:]]{1,3}){3}\>' 
  • Alternativ zu vorstehender Version kann auch wget verwendet werden; mit einer FRITZ!Box 7490 getestet:

    wget -qO- "http://fritz.box:49000/igdupnp/control/WANIPConn1" --header "Content-Type: text/xml; charset="utf-8"" --header "SoapAction:urn:schemas-upnp-org:service:WANIPConnection:1#GetExternalIPAddress" --post-data="<?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>"  | grep -Eo '\<[[:digit:]]{1,3}(\.[[:digit:]]{1,3}){3}\>' 

Variante 3 - MyFritz! Service

Unter Internet > Freigaben > Fritz!Box Dienste > Internetzugriff auf die FRITZ!Box über HTTPS aktiviert > Haken setzen. Die Fritz!Box zeigt nun eine Internet-Adresse ähnlich wie beispielsweise 1234567890abcdefgh.myfritz.net (Diese Zeichenfolge ist im Befehl natürlich individuell anzupassen!) an. Die öffentliche IP-Adresse dieser Domain hält die Fritz!Box automatisch aktuell, weshalb wir sie wie folgt auslesen können:

  • IPv4:

    dig 1234567890abcdefgh.myfritz.net   A  +short   # '1234567890abcdefgh.myfritz.net' anpassen! 
  • IPv6:

    dig 1234567890abcdefgh.myfritz.net AAAA +short   # '1234567890abcdefgh.myfritz.net' anpassen! 

Hinweis: Man muss dafür KEINEN Benutzer unter System > Fritz!Box-Benutzer hinzufügen oder mit dem Recht "Zugang aus dem Internet erlaubt" versehen. Der Zugriff aus dem Internet auf die Fritz!Box Oberfläche bleibt also gesperrt, auch wenn die Loginseite geladen werden kann.

Öffentliche IP-Adresse ändern

Fehlerhafte Anleitung

Diese Anleitung ist fehlerhaft. Wenn du weißt, wie du sie ausbessern kannst, nimm dir bitte die Zeit und bessere sie aus.


Anmerkung: Diese Skripte funktionieren bei FB 7490 mit OS 7.29 nicht mehr.

Mit folgendem Einzeiler kann man die FRITZ!Box (getestet mit Fon WLAN 7050) mittels UPnP dazu bringen, sich neu zu verbinden und man erhält so eine neue externe IP-Adresse:

curl "http://fritz.box:49000/upnp/control/WANIPConn1" -H "Content-Type: text/xml; charset="utf-8"" -H "SoapAction:urn:schemas-upnp-org:service:WANIPConnection:1#ForceTermination" -d "<?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:ForceTermination xmlns:u='urn:schemas-upnp-org:service:WANIPConnection:1' /> </s:Body> </s:Envelope>" 

Das Skript oben funktioniert ebenfalls mit der FRITZ!Box 7490 bis zum Firmware Update FRITZ!OS 06.05. Ab dieser Version muss das Skript wie folgt angepasst werden:

curl "http://fritz.box:49000/igdupnp/control/WANIPConn1" -H "Content-Type: text/xml; charset="utf-8"" -H "SoapAction:urn:schemas-upnp-org:service:WANIPConnection:1#ForceTermination" -d "<?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:ForceTermination xmlns:u='urn:schemas-upnp-org:service:WANIPConnection:1' /> </s:Body> </s:Envelope>" 

Mit der FRITZ!Box 7490 und Firmware Update FRITZ!OS 06.83(oder früher) ist eine Passworteingabe nötig. Das Skript muss wie folgt angepasst werden, wobei in dem Skript das eigene Fritzbox-Passwort eingetragen werden muss:

wget -q --user='' --password='HierEigenesPasswortEintragen' "http://fritz.box:49000/upnp/control/wanipconnection1" --header='Content-Type: text/xml; charset="utf-8"' --header='SoapAction: urn:dslforum-org:service:WANIPConnection:1#ForceTermination' --post-data='<?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:ForceTermination xmlns:u="urn:dslforum-org:service:WANIPConnection:1" /> </s:Body> </s:Envelope>' 

  • FritzBox - Weitere Artikel zur FritzBox

  • Shell - Übersicht zur Shell

  • Skripte - Weitere Skripte ohne Bezug zur FritzBox

Diese Revision wurde am 9. Mai 2023 09:31 von kB erstellt.
Die folgenden Schlagworte wurden dem Artikel zugewiesen: FritzBox, Shell