ubuntuusers.de

Shell login FritzBox

Status: Ungelöst | Ubuntu-Version: Ubuntu 16.04 (Xenial Xerus)
Antworten |

UnitedBlaze

Anmeldungsdatum:
30. Mai 2018

Beiträge: 28

Moin Moin, Ich würde mich gerne per Shell Script in meine Fritz Box einloggen um dort dann bestimmte html Seiten herunterladen. Ich hab ein wenig gegoogelt und mein Stand ist, dass es früher einmal leicht ging, heutzutage aber nicht ohne Veränderung am Router möglich ist...

Kann mir da jemand weiterhelfen? Ist es möglich?

(Router Software: FRITZ!OS 07.01)

Vielen Dank im Voraus!

Prof._Frink

Anmeldungsdatum:
29. Mai 2010

Beiträge: 1096

Hey,

dieses Skript (gefunden hier) funktioniert bei mir:

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
#!/bin/bash
_BOXURL="http://fritz.box"
_USERNAME=""
_PASSWORD="GEHEIM"
_REQUESTPAGE="/fon_num/foncalls_list.lua"
_OUTPUTFILE="OUTPUT.HTML"
_CHALLENGE=$(curl -s ${_BOXURL}/login.lua | grep "^g_challenge" | awk -F '"' '{ print $2 }')
_MD5=$(echo -n ${_CHALLENGE}"-"${_PASSWORD} | iconv -f ISO8859-1 -t UTF-16LE | md5sum -b | awk '{print substr($0,1,32)}')
_RESPONSE="${_CHALLENGE}-${_MD5}"
_SID=$(curl -i -s -k -d 'response='${_RESPONSE} -d 'page=' -d "username=${_USERNAME}" "${_BOXURL}/login.lua" | grep "Location:" | grep -Poi 'sid=[a-f\d]+' | cut -d '=' -f2)
curl -s "${_BOXURL}${_REQUESTPAGE}" -d "sid=${_SID}" >$_OUTPUTFILE

Viele Grüße,

Frink

UnitedBlaze

(Themenstarter)

Anmeldungsdatum:
30. Mai 2018

Beiträge: 28

Prof._Frink schrieb:

Hey,

dieses Skript (gefunden hier) funktioniert bei mir:

Hey, vielen Dank für den Tipp jedoch habe ich es gerade ausprobiert, und meine HTML Datei ist leer...

Welche FRITZ!OS Version ist bei dir im gebrauch?

USERNAME bleibt leer, richtig?

Funktioniert es bei dir mit:

"_REQUESTPAGE="/data.lua"

???

Prof._Frink

Anmeldungsdatum:
29. Mai 2010

Beiträge: 1096

UnitedBlaze schrieb:

Prof._Frink schrieb:

Hey,

dieses Skript (gefunden hier) funktioniert bei mir:

Hey, vielen Dank für den Tipp jedoch habe ich es gerade ausprobiert, und meine HTML Datei ist leer...

Welche FRITZ!OS Version ist bei dir im gebrauch?

Ich habe die Version 6.33.

USERNAME bleibt leer, richtig?

Jo.

Funktioniert es bei dir mit:

"_REQUESTPAGE="/data.lua"

???

Da erhalte ich nur

 Die angegebene URL wurde nicht gefunden. Sie werden auf die Startseite
   der FRITZ!Box weitergeleitet.

UnitedBlaze

(Themenstarter)

Anmeldungsdatum:
30. Mai 2018

Beiträge: 28

Alles klar vielen Dank! Ich habe es nun hinbekommen, jedoch lese ich noch nicht das richtige aus.. Ich will das ich durch filtern herausbekomme, welche Geräte aktuell mit dem WLAN verbunden sind. Kann mir da nun jemand weiterhelfen?

Prof._Frink

Anmeldungsdatum:
29. Mai 2010

Beiträge: 1096

UnitedBlaze schrieb:

Alles klar vielen Dank! Ich habe es nun hinbekommen, jedoch lese ich noch nicht das richtige aus.. Ich will das ich durch filtern herausbekomme, welche Geräte aktuell mit dem WLAN verbunden sind. Kann mir da nun jemand weiterhelfen?

Bei mir bekomme ich die verbundenen Geräte mit

1
_REQUESTPAGE="/wlan/wlan_settings.lua"

UnitedBlaze

(Themenstarter)

Anmeldungsdatum:
30. Mai 2018

Beiträge: 28

Prof._Frink schrieb:

UnitedBlaze schrieb:

Alles klar vielen Dank! Ich habe es nun hinbekommen, jedoch lese ich noch nicht das richtige aus.. Ich will das ich durch filtern herausbekomme, welche Geräte aktuell mit dem WLAN verbunden sind. Kann mir da nun jemand weiterhelfen?

Bei mir bekomme ich die verbundenen Geräte mit

1
_REQUESTPAGE="/wlan/wlan_settings.lua"

Okay, nochmal tausend dank!!

Und darf ich fragen, wie du denn schaust, ob ein bestimmtes Gerät aktuell verbunden ist oder nicht?

Prof._Frink

Anmeldungsdatum:
29. Mai 2010

Beiträge: 1096

UnitedBlaze schrieb:

Und darf ich fragen, wie du denn schaust, ob ein bestimmtes Gerät aktuell verbunden ist oder nicht?

Bei mir funktioniert das mit folgendem Pyhton-Skript (das spukt die Liste der aktuell verbundenen Geräte aus).

1
2
3
4
5
6
7
8
#!/usr/bin/python3                                                             
from pyquery import PyQuery

pq=PyQuery(filename="./OUTPUT.HTML")

for f in pq("td").items():
    if f.attr("class")=="cut_overflow":
        print(f.text())

Aber kann natürlich sein, dass das bei dir nicht klappt, wenn du eine andere Oberfläche hast.

Viele Grüße,

Frink

lubux

Anmeldungsdatum:
21. November 2012

Beiträge: 14328

UnitedBlaze schrieb:

... schaust, ob ein bestimmtes Gerät aktuell verbunden ist oder nicht?

Das geht auch z. B. mit:

sudo arp-scan -I <Interface> -RN -l | grep -q <IP-Adresse- _oder_ MAC-Adresse-Gerät>; echo $?

Wenn die Ausgabe 0 ist, ist das Gerät z. Zt. verbunden und wenn die Ausgabe 1 ist, ist das Gerät z. Zt. nicht verbunden. Das Passwort der FB ist nicht erforderlich. Der Test kann von jedem _geeignetem_ Gerät im W/LAN der FB gemacht werden.

Antworten |