Good to Know Database

AVM FRITZ!Box: Verbindungsstatus per Shell-Skript über UPnP abfragen


Bei der AVM FRITZ!Box können Sie über UPnP unter anderem auch den aktuellen Verbindungsstatus abfragen. Die folgende Anleitung soll Ihnen zeigen welche Daten Sie dazu an die FRITZ!Box senden müssen. Damit dies automatisch erfolgt und die Antwort der FRITZ!Box entsprechend nach dem Verbindungsstatus gefiltert wird, wird hier ein Shell-Skript erstellt welches nur den aktuellen Status zurückliefert.

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 connection_state.xml. Diese Datei enthält die UPnP-Informationen, welche später in einem POST-Request an die FRITZ!Box gesendet werden.

georg@ubuntu1404:~$ vi connection_state.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:GetStatusInfo 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 connection_state.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 connection_state.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#GetStatusInfo" -d "@connection_state.xml" | sed -n 's/^.*<\(NewConnectionStatus\)>\([^<]*\)<\/.*$/\2/p'

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 connection_state.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#GetStatusInfo" -d "@connection_state.xml" | sed -n 's/^.*<\(NewConnectionStatus\)>\([^<]*\)<\/.*$/\2/p'

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 connection_state.sh

Wenn Sie jetzt das Skript connection_state.sh aufrufen, wird der aktuelle Verbindungsstatus von der FRITZ!Box abgefragt und angezeigt.

georg@ubuntu1404:~$ ./connection_state.sh
Connected


Dieser Eintrag wurde am 24.03.2014 erstellt und zuletzt am 03.10.2014 bearbeitet.

Direkter Link zu dieser Seite: http://www.gtkdb.de/index_7_2571.html

[ Zur Startseite ]   [ Zur Kategorie ]


Valid XHTML 1.0 Transitional Valid CSS Valid Atom 1.0

© 2004-2018 by Georg Kainzbauer