.titleBar { margin-bottom: 5px!important; }

Fritzbox remote / über LAN steuern ?

Dieses Thema im Forum "FRITZ!Box Fon: Modifikationen" wurde erstellt von int25, 27 Apr. 2005.

  1. int25

    int25 Neuer User

    Registriert seit:
    26 Apr. 2005
    Beiträge:
    36
    Zustimmungen:
    0
    Punkte für Erfolge:
    0
    Gibt es die Möglichkeit, die Fritzbox remote / über LAN zu steuern ?

    Was ich mir wünschen würde, wäre ein Script auf der Fritzbox, dass externe Anfragen / Kommandos aufnimmt und an das System der Box übergibt.

    Möglichkeit wäre auf diesem Weg zb. einen der Daemons direkt anzusprechen und Parameter zu übergeben, Konfigurationsdaten zu ändern usw.

    Das Ganze netürlich nicht über das Webinterface (da as mir meine Möglichkeiten stark beschränkt), sondern auf Kommandoebene.

    Desgleichen nicht über einen Terminalclient, der manuell bedient werden muss, sondern durch direkte Uebergabe zb per TCP/IP, HTTP-Request oder dergl..

    Kann man evtl. ein CGI-Script einbauen, das eine solche Schnittstelle bietet und Get- oder Postdaten entsprechend auswertet / umsetzt und damit die Möglichkeit bietet, jeden denkbaren Kommandoaufruf an die Box zu überreichen, der zb. von einem andern Rechner im LAN als HTTP-Request gesendet wird ?
     
  2. olistudent

    olistudent IPPF-Urgestein

    Registriert seit:
    19 Okt. 2004
    Beiträge:
    14,761
    Zustimmungen:
    5
    Punkte für Erfolge:
    38
    Beruf:
    Softwareentwickler
    Ort:
    Kaiserslautern
    Du kannst deine eigenen CGI Skripte in die Firmware packen.
    Die müssen dann z.B. unter /usr/www/avm/cgi-bin.
    Die können dann über eine URL aufgerufen werden.
    Dazu musst du unter Linux die Firmware entpacken (dumpsquashfs) und wieder zusammenpacken (mksquashfs).
    Buildroot und anderes...

    MfG Oliver
     
  3. int25

    int25 Neuer User

    Registriert seit:
    26 Apr. 2005
    Beiträge:
    36
    Zustimmungen:
    0
    Punkte für Erfolge:
    0
    welche Scripte werden hier CGI-mässig ausgeführt ?
    ist es Perl ?
    Leider habe ich nur PHP gelernt (und könnte damit Systemkommandos aufrufen).

    Gibts irgendwo Beispielscripte, die etwas ähnliches tun: Post- oder Get-Argumente auswerten und daraus nach dem Muster "exec("befehl","rückgabewert")" ausführen lassen ?
     
  4. olistudent

    olistudent IPPF-Urgestein

    Registriert seit:
    19 Okt. 2004
    Beiträge:
    14,761
    Zustimmungen:
    5
    Punkte für Erfolge:
    38
    Beruf:
    Softwareentwickler
    Ort:
    Kaiserslautern
    Hi.
    Ich hab' mich da vielleicht etwas falsch ausgedrückt.
    Es sind normal Shellskripte und auch Binaries, die da ausgeführt werden.
    Code:
    /usr/www/cgi-bin # cat system_status
    #! /bin/sh
    
    . /etc/init.d/rc.conf
    
    echo -e "Content-type: text/html; charset=iso-8859-1\n\n"
    
    echo -e "<html><body>\c"
    
    run_clock -c /dev/tffs/mtd3 -S
    echo -e "-\c"
    /etc/version -v | tr -d '.'
    
    ############################################################################
    # An alle Kollegen, die die Firmware der Fritz Boxen fuer
    # lokale Entwicklungen modifizieren:
    ##########################################################################
    #
    # Seit so nett und hinterlasst euer Logo, und in Stichworten, welche
    # Modifikationen ihr durchgeführt habt. Ihr erleichtert den Nutzern
    # eurer Version das Leben.
    #
    # Im file /etc/version koennt ihr die Variable FIRMWARE_SUBVERSION modifizieren
    # hier koennt ihr eurer eigenen Subversion einen Namen geben
    #
    # export FIRMWARE_SUBVERSION=-Fritz-Build-77
    #
    ###########################################################################
    # echo -e "
    "
    # echo -e "Fritz der große Modifizierer"
    # echo -e "--- telnet demon aktiviert"
    # echo -e "
    "
    
    echo -e "</body></html>\n"
    /usr/www/cgi-bin #
    MfG Oliver
     
  5. mdjr

    mdjr Neuer User

    Registriert seit:
    1 Sep. 2005
    Beiträge:
    9
    Zustimmungen:
    0
    Punkte für Erfolge:
    0
    Hallo.

    Warum nicht automatisiert über Telnet?
    Mit deiner Programmiersprache eine TCP-Verbindung zu Port 23 der Fritz!Box öffnen.

    Wichtig: Character 0xFF hat eine spezielle Bedeutung und MUSS interprätiert werden (s. RFC 854 ff.).

    Um zu verhindern, dass die ganzen Fehlermeldungen über die TCP-Verbindung gesendet werden, einfach zwei TCP-Verbindungen aufbauen und die erste ggf. wieder schließen (also: zweite Verbindung für Telnet-Kommandos benutzen).

    Nachteil: Der Verbindungsaufbau dauert recht lange.

    Die CGI-skripte werden in /var/html/cgi-bin gesucht. Da das Verzeichnis /var überschreibbar ist, muss noch nicht einmal die Firmware neu aufgespielt werden, um CGI-Skripte zu installieren. Sondern:

    /var/html ist ein Symbolischer Link auf das Verzeichnis /usr/www/XXX
    (XXX = z.B. 1und1 oder avm)
    Diesen Link anschauen und löschen.
    Verzeichnis /var/html erstellen.
    Verzeichnis /var/html/cgi-bin erstellen.
    Alle Dateien aus /usr/www/XXX außer "cgi-bin" nach /var/html verlinken (ln -s ...)
    Alle Dateien aus /usr/www/XXX/cgi-bin nach /var/html/cgi-bin verlinken
    Neue CGI-Skripts ins Verzeichnis /usr/www/XXX/cgi-bin kopieren.

    Das ganze erfordert keine Modifikationen der Firmware, überlebt aber auch kein Reboot (der ja im Normalfall nur bei Stromausfall etc. passiert).

    Gruß
    MDJR
     
  6. martian

    martian Mitglied

    Registriert seit:
    26 Mai 2005
    Beiträge:
    273
    Zustimmungen:
    0
    Punkte für Erfolge:
    0
  7. martian

    martian Mitglied

    Registriert seit:
    26 Mai 2005
    Beiträge:
    273
    Zustimmungen:
    0
    Punkte für Erfolge:
    0
    Habe im o.g. Thread geantwortet, nur dass wir halbwegs beim Thema bleiben :wink: