Inhalt

 


Menü Ausschalten

MEngelke.de / Projekte / Fritz!Box Tools

Fritz!Box VBScripte

Suchen Drucken eMail 

Fritz!Box Tools

Die FritzBoxVBScripte werden nun in PHP neu Programmiert.
Geplant ist, alle Funktionen in ein einziges Script zusammen zu führen.
Zur Zeit hat das Script immer noch Alpha-Status d.H. es ist noch nicht fertig und alles kann sich noch ändern!
(Diese Anleitung wird noch Überarbeitet - Hoffe ich :-) )

Voraussetzungen

  • Mindestens PHP 4.4 oder neuer (bis PHP 7)
  • Und natürlich eine Fritz!Box mit aktueller Firmware!

Unterstützte Betriebssysteme

  • Windows 2000 bis Windows 10
  • Linux (z.B. Knoppix, Ubuntu, etc.)
  • MacOS X (Terminal)

Lizenz

Copyright (c) 2013-2017 Michael Engelke <http://www.MEngelke.de>
This program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation; either version 2 of the License, or (at your option) any later version.
This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details.
You should have received a copy of the GNU General Public License along with

this program; if not, see <http://www.gnu.org/licenses/>.

Download

# md5_summer 20.03.2017 00:42:23 (fb_tools 0.20) 51981b4b5f47c68ac54e7b1a3b488572 *fb_tools.bat f79672cb5f26b0585094e6f7d10bec2c *fb_tools.php 5e106e0c718ffda4f430df5a8e98bfde *fb_tools.php.gz 4d879d06b4c56d63356a7e8b5b1b5846 *fb_tools.7z Sofern mindestens PHP 4.4 verfügbar ist, ist FB_Tools unter jedem Betriebssystem lauffähig.
Zur Zeit wird von mir nur Windows und Linux unterstützt.

Installation

Für Windows ist die Installation relativ einfach:
Zuerst PHP installieren und anschließend fb_tools.bat in das PHP-Verzeichnis kopieren.
Für eine Portable Installation, wird nur die php.exe und je nach PHP-Version php7ts.dll, php5ts.dll, php4ts.dll benötigt.

  • Für Windows XP empfehle ich PHP 5.3.5, da dann die "Visual C++ Redistributable for Visual Studio" nicht benötigt werden. (Letzte mögliche Version ist PHP 5.4.45 mit VC9)
  • Für Windows 7-10 empfehle ich PHP 5.4.45, da auch dann die "Visual C++ Redistributable for Visual Studio" nicht benötigt werden.

Selbstverständlich können Sie die aktuellste Version von PHP einsetzen. (Wie Sie wollen...)
Eine fertige Portable PHP-Version für Windows zum Download finden Sie auf meine Projektseite: PHPBatch

 

Für eine dauerhafte Installation stehen Ihnen zwei Umgebungsvariabeln zur Verfügung: "php" und "phpopt"
Mit php können Sie den genauen Ort der php.exe festlegen (Dies kann man in den "Erweiterten Systemsteuerung" tun) und mit phpopt können Sie weitere Parameter für PHP definieren. (Eine Hilfe für alle Parameter erhalten Sie mit "php.exe -h")

 

FB_Tools wird in der Eingabeaufforderung gestartet, wie bei einer normalen Batchdatei: fb_tools oder fb_tools.bat

 

Getestet mit Windows XP, Windows 7 und Windows 10


Für Linux ist die Installation ein tickchen schwieriger, da es unzählige Linux-Varianten gibt:
Unter Debian-Linux gibt man für die Installation von PHP je nach Linux-Distribution folgendes in der Konsole ein:
sudo apt-get install php-cli, sudo apt-get install php5-cli oder sudo apt-get install php7-cli
Wenn Sie PHP 7.0 einsetzen (z.B. wie bei Ubuntu 16.04) müssen Sie noch zusätzlich:
sudo apt-get install php7-xml installieren (Sonst wird UTF-8 nicht unterstützt)
Anschließend kann man das Script an einen belieben Ort entpacken:
gzip -d /<path>/fb_tools.php.gz
Dann muss noch das Ausführen-Recht hinzugefügt werden:
chmod +x /<path>/fb_tools.php
Der Aufruf ist wie bei einer normalen Skriptdatei:
./fb_tools.php oder /<path>/fb_tools.php

 

Getestet mit Knoppix 7.7, Ubuntu 14.04/16.04 und mit Raspbian (Raspberry_Pi)


Für MacOS X ist es fast identisch wie unter Linux, mit den einzigen Unterschied, dass PHP schon zu den Boardmitteln von MacOS gehört. Nach dem herunterladen und entpacken, das Script im Terminal mit
chmod +x /<path>/fb_tools.php
ausführbar machen und wie eine normale Skriptdatei starten:
./fb_tools.php oder /<path>/fb_tools.php

 

Getestet mit MacOS X 10.6 Snow Leopard


Start und Parameter

Die Hilfe aller Funktionen bekommt man mit fb_tools -h
Möchte man Beispiele zu der aktuellen Hilfe, dann gibt man den Hilfs-Parameter "b" mit an: fb_tools -h:b
Um alle Optionen angezeigt zu bekommen, erreicht man das mit fb_tools -h:o
Und beides kombiniert würde auch gehen: fb_tools -h:bo oder fb_tools -h:a für Alles

 

Das Script hat für alle Funktionen zwei Optionale Parameter. In dem aller ersten optionalen Parameter, kann man die Zugangsdaten der Fritz!Box nach folgendem Schema angeben:
<fritz.box> oder <Kennwort>@<fritz.box> oder <Benutzername>:<Kennwort>@<fritz.box>

 

Beispiele:
fb_tools fritz.box bi, fb_tools geheim@fritz.box k ep, fb_tools max:kennwort@fritz.box d 115

 

Es gibt jetzt als Alternative auch Option-Parameter, die diesen ersten Parameter überflüssig machen können.
Theoretisch können Sie die Zugangsdaten im Script selber angeben, was aber nicht zu Empfehlen ist. (z.B. würden diese bei einen Update verloren gehen) Man kann in einer separaten Datei: "fb_config.php" die Zugangsdaten von einer oder mehreren Fritz!Boxen hinterlegen. Die entsprechende Fritz!Box ist dann über den vergebenen Schlüsselnamen (z.B. maxbox) erreichbar.

 

Beispiel:
fb_tools meinebox bi, fb_tools 7456 ss

 

Eine Beispieldatei finden Sie im Archiv fb_tools.7z.


Optionen

Im dem letzten optionalen Parameter können die Optionen gesetzt werden. Alle Optionen müssen mit ein Minus-Zeichen eingeleitet werden, und bei mehreren Optionen müssen alle Optionen entweder zusammen geschrieben werden oder dürfen durch ein Leerzeichen getrennt werden! (Beides ist NICHT möglich)
Beispiel:
fb_tools fritz.box info -d-w:80-o:ausgabe.txt oder fb_tools fritz.box info -d -w:80 -o:ausgabe.txt

-c:<code> für CharCode

Je nach Betriebssystem werden verschiede Kodierungen für die Umlaute eingesetzt. FB_Tools versucht selber die richtige zu finden. Sollte es Probleme geben, kann man mit dieser Option die Kodierung Manuell ändern.
Folgende Kodierungen stehen zur Verfügung: auto, 7bit, ansi, cp437, cp850, cp1252, dos, html, iso8859_1, oem, utf7, utf8 ("auto" ermittelt die Kodierung automatisch - Fackback ist 7bit oder utf7)

 

Beispiel:
fb_tools info -c:oem (Für Windows) fb_tools info -c:utf8 (Für Linux)

-d für Debug (Auch als Alternative für Verbose)

Um mehr Ausgaben zu Erzeugen kann man den Debug-Modus einschalten. Je nach Level bekommt man entsprechende Mitteilungen zu sehen. Im Standard Debug-Modus werden z.B. Status-Meldungen ausgegeben, wie Login/Logout etc.
Beispiel:
fb_tools info -d

-h für Hilfe

Alle Funktionen habe eine Hilfe-Ausgabe. Egal welche Funktion man benutzen möchte, kann man mit -h eine kleine Hilfe ausgeben lassen.
Eine erweitere Hilfe mit Beispielen: -h:b oder mit Optionen: -h:o und beides zusammen: -h:a
Benötigt eine Funktion zusätzliche Parameter werden [Pflicht]-Parameter in eckigen Klammen und <Optionale>-Parameter in spitzen Klammern markiert.
Beispiel:
fb_tools info -h

-o:[Datei] für Output

Diese Option ist eigentlich Identisch mit Stdout - Alle Ausgeben werden in die angegebene Datei geschrieben. Nur hier wird nicht für die Ausgabe nichts verändert. Die Zeichenkodierung der Ausgabe ist immer Ansi (ISO_8859-1)!
Beispiel:
fb_tools info -o:Datei.txt

-s:[SID] für SessionID

Möchte man FB_Tools in Batchdateien einsetzen, kann das ständige Anmelden hinderlich sein. Mit diesen Parameter kann man die erneute Anmeldung umgehen. (Voraussetzung ist die Login/Logout-Funktion)
Beispiel:
fb_tools info -s:0123456789abcdef oder fb_tools info -s:sid.txt

-w:[Länge] für Wortumbruch

Da die größe des Terminal-Fenstern begrenzt ist, können die Ausgaben Intelligent umgebrochen werden. Unter Linux und Windows wird die Terminal-Breite Automatisch ermittelt.
Beispiel:
fb_tools info -w:80

-fb:[fritz.box], -un:[Benutzername], -pw:[Kennwort], -pt:[Port], -fw:[Firmware-Version] für Login-Alternative

Da in der Windows-Version die Einschränkung mit den 9 maximalen Parametern aufgehoben wurde, wurden jetzt neue Parameter als Login-Alternative hinzugefügt. Die können mit dem ersten Startparameter vermischt werden.
Eine Besonderheit ist die Angabe der Firmware-Version. Die wird als Integer (OS 6.51 -> 651) übergeben. Und dient als Hilfe für ältere Fritz!Boxen mit OS4 oder noch älter. (Ab OS 5 ist diese Option unnötig)
Beispiel:
fb_tools info -d -fb:fritz.box -pw:kennwort -fw:434, fb_tools fritzbox info -d -un:max -pw:headroom -fw:530


Normale Funktionen

Alle Funktionen lassen sich mit den angezeigten Grossbuchstaben abkürzen:
Beispiel:
BoxInfo -> bi, Dial -> d, GetIP -> gip, Konfig ImPort-CalcSum -> k ipcs, usw.

 

Ordner bzw. Ordernamen

Wenn Sie einen Ordner in den Parametern angeben, wird Empfohlen ein Slash /oder Backslash \ dahinter zu setzen, damit FB-Tools weiss, dass es sich um ein Ordner handelt. Wenn der Ordner noch nicht existiert und sich im Ordnernamen ein %-Zeichen befindet, wird der komplette Ordnername mit strftime geparst.

 

Dateien bzw. Dateinamen

Wenn kein Dateiname angegeben wird, wird der Dateiname automatisch vergeben. Aber einige Parameter-Konstellationen erlauben es leider nicht, den Dateinamen einfach weg zu lassen. Als Alternative kann einfach als Dateiname ein Punkt . angeben.


Drag'n'Drop

Wird nur EIN Parameter übermittelt, die den Pfad einer Datei angibt, dann werden die Befehle aus der Variable $cfg[drag] angewendet. (Das "," steht in der Variable für den Dateinamen)

 

Das heißt: Sie ziehen eine Datei auf die FB_Tools Skript-Datei und die Funktion in der $cfg[drag]-Variable wird für die Datei angewendet. (Ähnlich wie bei fb_calcsum.vbs)

 

Eine Voraussetzung dafür ist, dass die Umgebungsvariable php auf den genauen Pfad von php.exe verweist, da das aktuelle Verzeichnis auf verschiedene Orte zeigen kann.


Boxinfo

Liest "jason_boxinfo.xml" aus gibt diesen aufbereitet in leserlicher Form aus!
Beispiel:
fb_tools <fritz.box> boxinfo


Dial [Rufnummer] <Telefon>

Eine Wahlhilfe für die Fritz!Box! (Die Fritz!Box wählt die Rufnummer selber und gibt das Telefonat an ein bestimmtes Telefon weiter) Wird das Script ohne Parameter gestartet, wird ein Eingabefenster geöffnet, wo die zu wählende Rufnummer eingeben werden muss.
Es werden nur Zahlen und * # akzeptiert. Alle anderen Zeichen werden für die Telefonnummer ignoriert. (Leerzeichen dürfen nicht ohne Anführungszeichen verwendet werden)
Beispiel:
fb_tools <fritz.box> dial *111#0123456789 oder fb_tools <fritz.box> dial "*111# 0123 456789"
Besteht eine Rufnummer nur aus Sonderzeichen dann wird aufgelegt!
Beispiel:
fb_tools <fritz.box> dial -

Code:Anschluss:
1-4FON 1-4
50ISDN & DECT
51-58ISDN 1-8
60-65DECT 1-6

Optional kann zusätzlich das Telefon für die Wahl selektiert werden! Dabei muss die Interne Rufnummer der Fritz!Box angegeben werden Beispiel:
fb_tools <fritz.box> dial 0123456789 1 - Das Telefonat wird auf FON1 gewählt!

 

Hinweis: Die Wahlhilfe der Fritz!Box unterstützt keine IP-Telefone!

 

Es werden außer im Fehlerfall, keinerlei Ausgaben gemacht!


Ereignisse [Datei|:] <Filter> <Seperator>

Gibt alle Ereignisse der Fritz!Box aus. Wird als Datei ein : angegeben, dann bekommt man alle Ereignisse auf die Console angezeigt. Wenn ein Dateiname übergeben wurde, wird diese mit strftime geparst. d.H. Im Dateinamen kann ein Dynamisches Datum sein.
Beispiel:
logs-%y%m%d.log Wenn eine Datei schon vorhanden ist, wird diese Datei mit neuen Ereignissen erweitert. (Wie eine Logdatei)
Alle Ereignisse können wie in der Fritz!Box auch gefiltert werden. Folgende Filter stehen zur Verfügung: alle, telefon, internet, usb, wlan, system
Möchte man eine CSV-Datei erzeugen, kann ein eigener Separator angegeben werden.
Beispiele:
fb_tools <kennwort:fritz.box> ereignisse : oder fb_tools <kennwort:fritz.box> ereignisse logs-%y%m%d.log alle ;


GetIP

Gibt die aktuelle Externe IP-Adresse (IPv4 & IPv6) der Fritz!Box aus. Zusätzlich werden noch die externen DNS-Adressen ausgegeben. Alle Adressen werden ohne externe Dienste per UPnP ermittelt. Wird "0.0.0.0" ausgegeben, dann hat die Fritz!Box keine Internet-Verbindung! Befindet sich die Fritz!Box hinter einen NAT-Router, dann wird logischerweise die IP-Adresse angezeigt, die vom NAT-Router vergeben wurde.
Beispiel:
fb_tools <fritz.box> getip


Info <Funktion|Datei>

Die Info-Funktion ist eine Interne Funktion und benötigt keine Fritz!Box.

 

Ohne weitere Parameter wird die Aktuelle Version von FB_Tools ausgeben, sowie die verwendete PHP-Version. Zusätzlich werden die aktuellen MD5/SHA1 Hashes ausgegeben
Im Debug-Modus wird ein Test-Login durchgeführt und anschließend die Konfiguation von FB_Tools ausgegeben.

Hasher <Datei>

Geben Sie als Parameter eine Datei an, wird von dieser Datei mehrere Checksummen (CRC32, MD5, SHA1, SHA256 und SHA512) erstellt.
Beispiel:
fb_tools info konfig.export

Update <check|force>

Hiermit können Sie FB_Tools über das Internet updaten. Soll nur geprüft werden, ob es ein Update gibt, dann muss zusätzlich "Check" mit angegeben werden. Soll FB_Tools im jeden Fall durch die aktuelle Version im Internet ersetzt werden, dann müssen Sie "Force" zusätzlich mit angeben. Beispiel:
fb_tools info update, fb_tools info update check

 

Hinweis: Bei der Windows-Version ist es möglich, dass nach dem eigentlichen Update Script-Fehler auftreten. Dies passiert, weil zwei verschiedene Script-Interpreter das selbe Script ausführen und ein Interpreter nicht mitbekommt, dass das Script ausgetauscht wurde.


Konfig [export|extrakt|file|import] <Datei/Ordner> <Kennwort>

Mit der Konfig-Funktion können Sie die Einstellungen der Fritz!Box exportieren fb_tools <kennwort@fritz.box> konfig export <Datei> und importieren fb_tools <kennwort@fritz.box> konfig import [Datei].

 

Beim Export ist es mit fb_tools <kennwort@fritz.box> konfig extract <Ordner> möglich die Einzelnen Fragmente der Konfiguration zu entpacken, die auch mit Import-Funktion wieder importiert werden können.

 

Um Konfig-Dateien zu Konvertieren gibt es die File Funktion, die es Teilweise erlaubt auch ohne Fritz!Box zu Arbeiten.

 

Werden Manipulationen an der Konfiguration vorgenommen können, diese mit fb_tools <kennwort@fritz.box> konfig import-calcsum [Datei] importiert werden. Die Checksumme wird dabei neu berechnet. (Somit kann man auch Manipulation an allen aktuellen Fritz!Boxen UND Kabelboxen (z.B Fritz!Box 6490) vornehmen).
Eine Alternative dazu ist Fritz!Box JSTool in JavaScript oder Fritz!Box VBScripte in VBScript

 

Möchte man seine Zugangsdaten in Klartext haben, kann man sich diese mit fb_tools <kennwort@fritz.box> konfig export-decrypt OHNE Telnet entschlüsseln lassen. Dazu benötigt man eine Fritz!Box mit mindestens FRITZ!OS 5 oder neuer. (Es wird Empfohlen VORHER den Push-Dienst zu deaktivieren, da es sonst unnötig lange dauert und man von seiner eigenen Fritz!Box währenddessen zugespamt wird... ;-))

 

Möchte man die Daten aus einer älteren Fritz!Box, einen Fritz!Repeater oder Fritz!Powerline in Klartext, dann speichert man sich die Konfiguration mit Kennwort. Nun benötigt man irgendeine Fritz!Box mit FRITZ!OS 5 (oder neuer) und man bekommt die Konfig mit fb_tools <kennwort@fritz.box> konfig file-decrypt [Datei] [Kennwort] in Klartext zu sehen.

 

Konfig-Decrypt wurde von mir erfolgreich
mit folgenden Fritz!Boxen getestet:

  • 7270 (OS 6.0)
  • 7312 (OS 6.5)
  • 4020, 7390, 7490 und 7580 (OS 6.8)

Und ich bekam folgende Erfolgreiche Rückmeldungen:

  • 7330 (OS 6.5)
  • 7360 SL, 7360v1 (OS 6.3)
  • 7360v2 (OS 6.5)

Wenn jemand weitere Fritz!Boxen getestet hat, kann er mir das gerne mitteilen! (Kabelboxen und Internationale Boxen sind nach wie vor ungetestet)

 

Hinweise:

  • Hierbei wird KEINE Sicherheitslücke oder sonstige Schachstelle ausgenutzt. - Ohne Anmelde/Export-Kennwort funktioniert das NICHT!!!
  • Ab Fritz!OS 6.69 muss VORHER in "System / Fritz!Box-Benutzer / Anmeldung im Heimnetz" die Option "Ausführung bestimmter Einstellungen und Funktionen zusätzlich bestätigen" deaktiviert werden, da sonst die Fritz!Box ständig eine bestätigung per Telefon haben möchte.

Login / Logout

Für Batch-Script können Sie sich damit Manuell einloggen und eingeloggt bleiben. Die SID (SessionID) kann entweder direkt oder als Datei angegeben werden.
Dies könnte wie folgt aussehen:
fb_tools password@fritz.box login -o:sid oder fb_tools password@fritz.box login > sid
fb_tools plugin privat.php -s:sid
fb_tools logout -s:sid

 Mal ein Beispiel für eine Windows Batch-Datei:
call fb_tools.bat password@fritz.box login > sid.txt
call fb_tools.bat plugin event.php internet -s:sid.txt
call fb_tools.bat plugin event.php telefon -s:sid.txt
call fb_tools.bat plugin event.php wlan -s:sid.txt
call fb_tools.bat plugin event.php usb -s:sid.txt
call fb_tools.bat plugin event.php system -s:sid.txt
call fb_tools.bat logout -s:sid.txt
del sid.txt

Plugin [Plugin-Script] <...>

Jetzt ist es möglich, eigene PHP-Erweiterungen für FB_Tools zu schreiben. Die Plugin-Datei wird mit include aufgerufen und das Plugin kann über alle Funktionen von FB_Tools verfügen.

 

Folgene Plugins liegen im Archiv fb_tools.7z mit dabei:

  • fbtp_led.php
    Schaltet die LEDs (Power, Telefon (DECT, Internet, Festnetz), LAN, WLAN und Info) von Fritz!Boxen und PowerLines an und aus. (Ab ca. Fritz!OS 5.5)
    Einige Fritz!Boxen haben zusätzliche LEDs (z.B. Internet) die leider weiterhin leuchten.
  • fbtp_unprotect.php
    Einige Internet-Provider setzen auf ungebrandete Fritz!Boxen, wo nur Teile der Konfiguration gegen Einsicht und Veränderung geschützt sind. Dieser Schutz lässt sich mit dem Plugin aufheben.
 

WARNUNG: Achten Sie darauf, welche Scripte Sie einbinden - Es gibt KEINE Prüfung auf Malware oder Schadsoftware!!!

 

Beispiele:
fb_tools <kennwort:fritz.box> plugin plugins/fbtp_led.php off, fb_tools <kennwort:fritz.box> plugin fbtp_unprotect.php no


Reconnect

Veranlasst die Fritz!Box über UPnP sich im Internet neu einzuwählen. (Falls die Externe IP-Adresse geändert werden muss) Es werden bei Erfolg keinerlei Ausgaben gemacht!


SupportDaten [SupportDaten] [Datei|Ordner|.] <ExTrakt> <TeleMetrie:(an|aus)>

Alle Support-Daten der Fritz!Box auslesen. Beim Aufruf wird die Support-Datei im aktuellen Arbeitspfad oder im Angegebenen Verzeichnis erstellt. Hat man OS 6.5 oder neuer können die SupportDaten in einzelne Dateien aufgesplittet werden. (Ähnlich die Konfig ExTrakt) und man kann zusätzlich die Telemetrie-Daten Ein und Ausschalten.

 

Beispiel:
fb_tools <kennwort@fritz.box> sd Support/ et, fb_tools <kennwort@fritz.box> sd support.txt tm:an


SystemStatus <SupportCode>

Liest den Status-String aus gibt diesen in leserlicher Form aus! Ist ist auch Möglich einen eigenen SupportCode anzugeben.
Beispiel:
fb_tools <fritz.box> status, fb_tools status "FRITZ!Box Fon WLAN 7390-B-010203-040506-000000-000000-147902-840522-22574-avm-de"


Bekannte Probleme

  • Intern arbeitet FB_Tools mit der ANSI-Kodierung: ISO_8859-1, das Terminal arbeitet, je nach Betriebssystem, mit entsprechenden Voreingestellte Zeichen-Kodierung und die neueren Fritz!Boxen arbeiten mit UTF-8.
    Sind die Zeichen-Kodierungen unterschiedlich, können bei der Parameterübergabe oder bei der Ausgabe, Übersetzungsfehler auftreten. Insbesondere bei Kennwörtern!
    Abhilfe: Meiden Sie Umlaute oder Sonderzeichen außerhalb der 7Bit Ascii-Kodierung!
  • Für die Entwicklung von FB_Tools werden Deutschsprachige Fritz!Boxen eingesetzt, wird nun FB_Tools an einer Internationalen Fritz!Box betrieben, können Sprachbedingte Nebeneffekte auftreten.
  • Da mir keine Kabel oder Gebrandete Fritz!Boxen zum testen zur verfügung stehen, ist das verhalten an diesen Geräten ungetestet!

Fragen & Antworten

Ich habe mein Anmeldekennwort vergessen! - Kann man es mit FB_Tools hacken?

Nein! FB_Tools ist KEIN Hacking-Tool. Entweder Sie suchen weiter oder setzen Ihre Fritz!Box zurück.
 

"Der Befehl ""php"" ist entweder falsch geschrieben oder konnte nicht gefunden werden."

Sie haben vergessen PHP zu installieren! - oder Sie haben fb_tools.bat nicht in das PHP-Verzeichnis kopiert.
 

Warum liegt PHP nicht im Archiv mit bei?

Erstens: FB_Tools wurde für mehrere Betriebsysteme Programmiert, wo man unmöglich alle entsprechende PHP-Versionen mit bei legen kann und zum anderen: Ich bin KEIN Download-Hoster! Für Windows-Benutzer habe ich ein Neben-Projekt PHP Batch, wo man verschiedene PHP-Binaries bei mir herunterladen kann.
 

Warum werden von Ihnen so alte PHP-Version empfohlen? Haben die nicht alle Sicherheitslücken?

Ja! Haben sie! ABER: In der CLI-Version greifen diese Lücken nicht, da Sie als Skript-Benutzer schon alle Rechte auf der Console haben. Cross-Site-Scripting funktioniert nicht, da die Console kein HTML oder JavaScript kann. (Okay: SQL-Injection wäre tatsächlich möglich, aber vor solchen Fehlern kann PHP nicht schützen - Da muss schon der Programmierer aufpassen)
Wenn man FB_Tools direkt mit einen Webserver betreiben möchte, dann sollte man in der Tat auf ältere PHP-Versionen verzichten, da dann die Sicherheitslücken sehr wohl Relevant werden. - Wer möchte, kann sich mein Projekt: Attack Forum mal genauer ansehen, dort habe ich mit Sicherheitslücken ein wenig herumgespielt ;-)
Auf der anderen Seite sind Programmierfehler oder Änderungen mit neueren PHP-Version viel warscheinlicher als mit älteren PHP-Versionen. z.B. Gibt es ein Problem mit PHP 7.0, wo auf einigen Betriebssystemen der UTF8-Support unvollständig ist!
Daher Empfehle ich gerne für die CLI-Version ältere PHP-Versionen, da sich dort nichts mehr gravierendes ändern wird.
Zur Zeit nutze ich für die Entwicklung von FB_Tools PHP 4.4.9 und PHP 5.4.45.
 

Wird es eine GUI / Benutzeroberfläche kommen?

Nein! FB_Tools ist als Konsolen-Programm gedacht und wird von mir keine Oberfläche bekommen.
Für die Checksummen-Berechnung gibt es eine JavaScript-Version und für Windows eine in VBScript, die Teilweise eine GUI mitbringen.
 

Die Übergabeparameter für die Fritz!Box-Adresse sind Kryptisch - Warum?

Das Problem WAR die Windows-Version - Da waren eine ganze Zeit lang nur maximal 9 Parameter möglich und so musste ich etwas sparsam sein - Jetzt ist das Geschichte und man kann nun mit den Optionen: -fb:[fritz.box], -un:[Benutzername], -pw:[Kennwort] arbeiten.
Ich Empfehle die fb_config.php für die Zugansdaten zu verwenden, da manche Betriebssysteme die Konsoleneingaben unverschlüsselt mit loggen.
 

Welche Funktionen sind noch zu erwarten?

Ereignisse, Telefonbuch, Smarthome, Internetstatus, TR064, Plugins, usw.
 

Wird es von FB_Tools auch eine Internationale-Version geben?

Wenn sich jemand als Übersetzer Anbietet, läßt sich möglicherweise drüber reden...

Programmgeschichte

V0.20 20.03.2017

  • Char-Kodierung: cp65001 (utf8) hinzugefügt
  • Workaround für PowerShell Erkennung verbessert
  • GetIP: Filter implemmentiert
  • Konfig DeCrypt: Internationale Sprachen an OS 6.8 angepasst
  • Konfig Extract: pattern.txt in index.txt unbenannt
  • Konfig Extract/File/Import: Unterstützung von gz-Dateien / tar/tgz-Archiven
  • SupportDaten: Unterstützung von gz-Dateien
  • SupportDaten Extract: Unterstützung von tar/tgz-Archiven
  • pcre.backtrack_limit von 16 MB auf 64 MB erhöht
 

V0.19 29.01.2017

  • Bug in Auto-Update-Check beseitigt
  • Firmware wird nun auch bei Labor-Versionen korrekt erkannt
  • Ereignisse und Konfig-DeCrypt an OS 6.8 angepasst
  • Workaround für Konfig-DeCrypt an Fritz!Box 7312 implemmentiert
  • GetIP unterstützt nun auch DNS und IPv6
  • Info StrfTime implementiert
  • Workaround für HTTP-Fehler 503 implementiert
 

V0.18 20.08.2016

  • Bug: Downloads waren teilweise immer file.bin
  • Bug: Bei allen HTTP-Requests wurden fehlerhafte HTTP-Header geschickt
  • Zugangsdatenübersicht an Repeatern angepasst
  • PHP Extensions werden auch im Unterordner ext gesucht
  • Char-Kodierung: ASCII hinzugefügt
 

V0.17 06.08.2016

  • Bug: FRITZ!WLAN Repeater N/G machte probleme beim Login und im Dateinamen
  • Bug: SID wird nur noch dann gesendet, wenn eine vorhanden ist
  • Bug: Beim Update unter Linux wurde chmod nicht korrekt gesetzt
  • Debug-Behandlung verbessert
  • Optionen-Erkennung etwas verbessert
  • Timeout für sehr langsame Fritz!Boxen von 3 auf 30 Sekunden erhöht (ist mit -t:<sec> veränderbar)
  • UpGrade in "info update" umbenannt
  • Konfig-DeCrypt verbessert (Entschlüsselt auch Kennwörter im Binaer-Bereich der Konfig - Danke für den Hinweis)
  • Zugangsdatenübersicht mit DECT-eMail erweitert
  • Supportdaten ünterstützt nun ab OS6.5 Telemetrie
  • Alle Neu erstellen Ordner unterstützen strftime im Ordnernamen und können weitere Unterordner enthalten
 

V0.16 20.07.2016

  • Bug in Drag entfernt (Parameterzähler war falsch)
  • Bug: Ansi-Ausgabe war nicht Möglich - jetzt auch zusätzlich cp1252, iso8859
  • Kleine Bugs in Dial und Login/out entfernt
  • Windows-Version an die PowerShell angepasst und Einschränkung mit 9 Maximalen Parametern aufgehoben
  • Optionen erweitert - Jetzt können die Optionen auch einzeln übergeben werden
  • Option -s akzeptiert auch eine Datei, in der sich die SID befindet
  • Option Hilfe aufgeteilt (Beispiele und Optionen können zusätzlich ausgegeben werden)
  • Neue Optionen zum Einloggen (-fw, -fb, -un, -pw, -pt) implementiert
  • Konfig-DeCrypt verbessert (Entschlüsselt auch Konfigurationen mit mehreren Kennwörtern - Danke an Herby007)
  • Zugangsdatenübersicht für WLAN, VoIP und TR069 verbessert, unnötige Einträge werden in der Übersicht weggelassen
  • NEU: Ereignisse können ausgelesen und Syncronisiert werden
  • NEU: SupportDaten können ab OS 6.5 extrahiert werden
  • Interne Routinen zu Login, Optionen und Konfig geändert bzw. verbessert
  • Kleines EasterEgg versteckt
 

V0.15 07.07.2016

  • Bug in der UpGrade-Funktion entfernt (Das Umbenennen war fehlerhaft)
  • Option -s (sid) erweitert (Damit sind umfangreiche Batch-Dateien möglich)
  • Option -w (Wortumbruch) erweitert (Unter Windows wird ebenfalls die Consolen-Breite automatisch ermittelt)
  • Zugangsdaten können auch bei einer Internationalen Fritz!Box (z.B. 4020) ausgelesen/entschlüsselt werden
  • Verbesserte Fehlermeldung
  • Auto-Update Check implementiert (Abschaltbar)
  • Konfig->JSON Konverter implementiert
  • Request-Download implementiert (z.Z. nur für SupportDaten und Konfig Export)
  • Debug-Ausgabe erweitert
  • Plugin-Schnittstelle eingebaut, damit können eigene Scripte in FB_Tools eingebunden werden (Mit Beispielscript)
 

V0.14 30.06.2016

  • Bug in der Import-Funktion entfernt
  • Workaround wenn PHP kein utf8 unterstützt (PHP 7.0 ohne php-xml unter Linux)
  • Option -c:7bit implementiert (Fallback auf 7Bit wenn PHP kein utf8 unterstützt)
  • UpGrade zeigt als Gag Cookies an ;-)
  • Drag'n'Drop-Modus implementiert
  • Suchfunktion für Zugangsdaten neu entwickelt (Leider auch nicht viel besser...)
 

V0.13 25.06.2016

  • Bugs mit großeren PHP-Versionen entfernt
  • Bug in der Konfig-Checksum berechnung entfernt
  • Arbeitsgeschwindigkeit Optimiert (strtr)
  • Text-Ausgabe verbessert
  • Option -d verbessert (Mit Bit-Codierung)
  • Option -w (Wortumbruch) implementiert (Unter Linux wird die Consolen-Breite automatisch ermittelt)
  • Option -o (File-Output) implementiert
  • Option -c:html implementiert
  • NEU: Fritz!Konfig kann als Ordner im/exportiert werden (Mit Checksum berechnung)
  • NEU: Alle Zugangsdaten können OHNE Telnet aus der Fritz!Konfig ausgelesen und angezeigt werden
  • NEU: Die aktuelle Version kann mit dem Internet abgeglichen werden (mit automatischen Update)
 

V0.12 16.06.2014

  • UPnP-Funktionen ermitteln den Link-Pfad selber
  • Erste anpassungen für PHP 5.5 (preg_replace -> preg_replace_callback)
  • Unterstützung von CRYPTEDBINFILE bei Powerline-Konfig
 

V0.11 17.02.2014

  • Config in Konfig umbenannt
  • Konfig akzeptiert auch DOS/Windows Dateien
  • Konfig File implemmentiert
  • Keine Trennung mehr zwischen Modes mit und ohne Login
  • Script läuft immer bis zuende durch (Kein DIE oder EXIT mehr)
  • Bug in Dial behoben (Das Telefon könnte nicht ausgewählt werden)
 

V0.10 07.01.2014

  • Config Export/Import implementiert (Mit CheckSum berechnung)
  • Boxinfo implementiert (Jason_Boxinfo.xml)
  • Interne Request-Funktion erweitert
  • Weitere kleine Hilfs-Unterfunktionen implemmentiert
  • Anpassung an PHP 5 für große RegEx-Ergebnisse
 

V0.09 22.10.2013

  • Info-Option erkennt auch kurzschreibweise
  • Bug im Dialer behoben: # lässt sich nicht wählen
  • Externe IP ermittlung der aktuellen Firmware angepasst
 

V0.08 01.04.2013

  • Hilfe-Ausgabe verbessert
 

V0.0 - 0.07 19.01 - 30.03.2013 (Interne Releases)

  • Interne Request Funktion implementiert
  • Login & Logout Funcktion implementiert
  • Einfache Hilfeausgabe implementiert
  • SystemStatus implementiert
  • Fehlerverarbeitung verbessert
  • Interne UPnP-Request Funktion implementiert
  • GetIP implementiert
  • Reconnect implementiert
  • Option -c (Kodierung für die Console) implementiert
  • Option-übergabe implementiert
  • Hilfeausgabe verbessert
  • Kleiner Bug in SystemStatus behoben
  • Optionen -d (Debug) und -t (Timeout) implementiert
  • Hilfeausgabe weiter verbessert
  • Interne Request Funktion überarbeitet (POST/Multipart)
  • SupportDaten implementiert
  • Option -b (Buffergröße) implementiert
  • Programmablauf für Login-Funktionen überarbeitet
  • Automatische ermittung der Kodierung von der Console implementiert
  • Info implementiert
  • Dial implementiert
  • Hilfeausgabe weiter verbessert

 << Links | Home | Serien >><< Fritz!Box JSTool | Projekte | Fritz!Box VBScripte >>