Fritz!Box Tools Einführung
Fritz!Box Tools ist eine Multi-Funktions-Sammlung, um Daten aus der Fritz!Box auszulesen und wieder einzuspielen oder um automatisiert Funktionen in der Fritz!Box auszulösen.
Mit vielen Plugins wird die Funktionsvielfalt ständig erweitert.
Geschrieben wurde fb_Tools in PHP für die Konsole, was auf vielen Betriebssystemen verfügbar ist.
fb_Tools ist Quell offen und kann/darf von jedermann entsprechend der GNU GPL-Lizenz für seine eigenen Projekte benutzt werden.
Gegenwärtig entwickle ich fb_Tools alleine, was nicht heißt, dass es so bleiben muss.
Die Zielgruppe sind versierte Benutzer, die mit der Konsole umgehen können.
Wer eine Oberfläche braucht, sollte sich besser Fritz!Box JSTool genauer anschauen.
Zur Zeit hat fb_Tools immer noch Alpha-Status d.H. es ist noch nicht fertig und alles kann sich noch ändern!
Voraussetzungen
|
Unterstützte Betriebssysteme
- Windows 2000 bis Windows 11
- Linux (z.B. Knoppix, Ubuntu, etc.)
- MacOS X (Terminal)
|
Lizenz:
Copyright © 2013-2024 Michael Engelke <
https://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 3 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 <
https://www.gnu.org/licenses/>.
Download:
# md5_summer 06.01.2024 16:44:27 (fb_tools 0.40)
640b809692a31265cbddc516d49701ac *fb_tools.bat
1d1e19b0ca45674e9bf0be1b039e1936 *fb_tools.php
4daff509c942ca767094ecb2752965b6 *fb_tools.php.gz
b876723701010e09e429849be7880031 *fb_tools.7z
5ba3a961805a6aee2709c4c03f192894 *fb_tools.txz
69857c3c009a4438494f0758ad879cc3 *fb-tools.deb
6b3554e542eece3c8e777bf731003653 *fbt_plugins.tgz
Sofern mindestens PHP 4.4 verfügbar ist, ist fb_Tools unter jedem Betriebssystem lauffähig. Neben den normalen Betriebssystemen bekam ich auch Rückmeldungen von verschiedenen NAS-Systemen, Android, LibreElec, etc.
Wenn fb_Tools im vollen Umfang genutzt werden soll, sollte man mindestens PHP 5.4 oder besser PHP 7.1 oder neuer benutzen. Für SSL-Verbindungen sollte immer auf die aktuellste Version gesetzt werden. (z.B. PHP 8.1 oder neuer)
Die unterstützten PHP-Erweiterungen Bzip2, MCrypt, MHash, OpenSSL, MySQLi und SQLite3 sind "Nice to have" aber nicht "Must have"
Zur Zeit wird von mir nur Windows und Linux unterstützt. (MacOS kann ich leider nicht vernünftig Testen...)
fb_tools.7z | 7-Zip | Alle Betriebssysteme (Windows, Linux, MacOS X) |
fb_tools.txz | Tar, xz | Alle Betriebssysteme (BusyBox, Windows, Linux, MacOS X) |
fb-tools.deb | Debian-Paket | (Debian, Knoppix, Mint, Ubuntu) |
fb_tools.php.gz | GZip | Nur das Hauptscript für die Shell (BusyBox, Linux, MacOS X) |
Unterschiede:
- Im 7z-Archiv und im txz-Archiv finden Sie alle Versionen, Plugins und Bibliotheken.
- Im Debian-Paket befindet sich nur die Linux-Version mit Plugins.
- Und im gz-Archiv ist nur das Hauptscript für Linux enthalten.
Installation:
Alle Betriebssysteme
Solange es PHP ab Version 4.4 für das Betriebssystem gibt und auch installiert ist, dann kann man fb_tools ausführen.
Zur Installation muss man eigentlich nur das Archiv fb_tools.7z
an einen beliebigen Ort entpacken.
Befindet sich PHP innerhalb der path Variable kann fb_tools.php wie folgt aufgerufen werden:
php fb_tools.php
Ansonsten muss man Notfalls den kompletten Pfad mit angeben (Entsprechend der Schreibweise des Betriebssystems):
/Service/PHP/php /fritzbox/fb_tools.php
Unterstützung kann ich nur für Windows und Linux anbieten - da ich andere Betriebssysteme nicht testen kann...
Windows
Fritz!Box Tools unter Windows 11 installieren (1/3)
Zuerst PHP herunterladen und entpacken, 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 php8ts.dll, php7ts.dll, php5ts.dll, php4ts.dll benötigt.
- Für Windows XP empfehle ich PHP 5.4.45 mit vcredist_x86_vc9.exe
- Für Windows 7-10 empfehle ich PHP 8.1 und die Bibliothek "Visual C++ Redistributable for Visual Studio".
Selbstverständlich können Sie auch andere PHP-Versionen einsetzen. (Wie Sie wollen...)
Eine fertige Portable PHP-Version OHNE Erweiterungen für Windows zum Download finden Sie auf meine Projektseite: PHPBatch
Wenn sie HTTPS-Verbindungen nutzen wollen, sollte die PHP Version nicht älter als 7.4 sein!
- Bei Windows 11 ist das genauso, wie bei Windows 10.
Für eine dauerhafte Installation stehen Ihnen zwei Umgebungsvariablen zur Verfügung: "php
" und "phpopt
"
Mit php
können Sie den genauen Ort der php.exe festlegen (Dies kann man in den "Erweiterte Systemeinstellung" bzw. "Systemeigenschaften" im Tab "Erweitert" 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 oder in der Powershell gestartet, wie bei einer normalen Batchdatei: fb_tools
oder fb_tools.bat
bzw. .\fb_tools.bat
Zeichen wie: ,
;
%
&
<
|
>
sollten in den Parametern vermieden werden oder müssen in "Anführungszeichen" übergeben werden.
Das Prozent-Zeichen (%
) wird mit sich selbst entwertet.
Beispiel:
fb_tools info echo ", ; %% & < | >"
Erweiterungen:
- Um HTTPS nutzen zu können, wird PHP 5.3+ und die Erweiterung OpenSSL benötigt. Die nötigen Dateien finden Sie im Original-Archiv aus windows.php.net.
Das wären die folgenden Dateien: php_openssl.dll
- Für PHP 5.3 - 7.1 zusätzlich: libeay32.dll, ssleay32.dll
- Für PHP 7.2 - 8.1 zusätzlich: libcrypto-1_1(-x64).dll und libssl-1_1(-x64).dll
- Ab PHP 8.2 zusätzlich: libcrypto-3(-x64).dll und libssl-3(-x64).dll
Hinweis:
- Ab PHP 5.3 ist HTTPS möglich.
- Ab PHP 5.4 kann das HTTPS-Zertifikat ignoriert werden.
- Und ab Fritz!OS 7+ braucht man neuere PHP/OpenSSL Versionen (z.B. 8.x oder teilweise auch noch 7.4), die nicht von der Fritz!Box abgeleht werden.
OpenSSL ist die wichtigste Erweiterung, die fb_Tools benötigt. Deswegen gibt auch einen Extra-Test dafür:
fb_tools info openssl
- Für die Entschlüsselung der Fritz!Box-Konfiguration wird entweder die Erweiterung OpenSSL, MCrypt oder ein Aes-Script benötigt, wobei letzteres im Archiv fb_tools.7z mit bei liegt.
MCrypt benötigt für PHP 4.3 bis 5.3 folgende Dateien: php_mcrypt.dll und libmcrypt.dll. Ab PHP 5.4 - 7.1 ist es Bestandteil von PHP. (MCrypt hat Probleme bei der Entschlüsselung von CryptedBin-Daten)
Einen schnelltest, um zu prüfen, ob die Erweiterungen funktionieren, macht man mit fb_tools info extension
- Für das neue Login-Verfahren (PBKDF2 ab Fritz!OS 7.24) wird idealerweise PHP 5.5 oder neuer benötigt. Alternativ wird das HashTool-Script benötigt, was im Archiv fb_tools.7z mit bei liegt. Und sollte PHP älter sein als 5.1.2, noch zusätzlich die Dateien php_mhash.dll und libmhash.dll.
- Um Bzip2 lesen/schreiben zu können wird die Erweiterung: php_bz2.dll benötigt. (Es werden nicht alle Dateioperationen unterstützt)
- Um das Plugin SQLDB nutzen zu können wird die Erweiterung: php_mysqli.dll und/oder php_sqlite3.dll benötigt.
Getestet mit Windows XP (PHP 4.4 - PHP 5.4), Windows 7/Windows 10/Windows 11 (PHP 4.4 - PHP 8.1)
Fritz!Box Tools unter Windows 10 mit BusyBox & Linux installieren (2/3)
Diese etwas gefahrene Installation ist etwas für Nerds:
- Zunächst muss man BusyBox herunterladen und da es nur eine Datei ist, kann man die am besten im Windows-Verzeichnis ablegen.
Busybox kann man ab Windows 10 auch über die Konsole herunterladen:
curl -o busybox.exe https://frippery.org/files/busybox/busybox.exe
- Nun legt man im Hauptverzeichnis die Unterverzeichnisse mit
mkdir \usr\bin
an. Da packt man die Windows PHP-Version mit allen nötigen Dateien und Erweiterungen dazu. (Für die entsprechende PHP-Version muss noch "Visual C++ Redistributable for Visual Studio" in der entsprechenden Version Installiert werden.)
- Damit die PHP-Erweiterungen von PHP gefunden werden können, muss die php.ini entsprechend Modifiziert werden: z.B.
extension_dir = /usr/bin
- Jetzt startet man die BusyBox-Shell mit
busybox bash
oder busybox sh
- Ab hier machen Sie einfach bei Linux (fb_tools.txz) weiter! (Den Teil mit PHP können Sie überspringen, da wir schon die Windows-Variante installiert haben.)
Getestet mit BusyBox 1.36 und Windows XP (PHP 5.4), Windows 7 (PHP 7.1), Windows 10 (PHP 8.1)
Unter Windows 10 (64 Bit) ist seit Ende 2017 Möglich, eine echte Ubuntu-Konsole zu betreiben:
- Als erstes ruft man die Windows-Einstellungen auf und wählt "Apps" aus.
- Rechts im Fenster findet man "Verwandte Einstellungen" und direkt darunter klickt man auf "Programme und Features"
- Nun wechselt man auf "Windows-Features aktivieren oder deaktivieren"
- Ganz herunter scrollen und "Windows-Subsystem für Linux" aktivieren. - Mit "Okay" alle Fenster wieder schließen und Windows neu starten.
- Jetzt geht es im "Mirosoft Store" weiter, dort sucht man nach "Ubuntu" - Ich Empfehle "Ubuntu 22.04 LTS", welches man kostenlos herunterlädt.
- Nach dem etwa 220 MB heruntergeladen wurden, startet man die "App" und wartet ein Weilchen...
- Beim ersten Start wird nach einen Username und Password gefragt - dieser muss NICHT gleich dem Windows Benutzernamen sein...
- Es empfiehlt sich gleich als erstes die Deutsche Sprache einzustellen:
sudo locale-gen de_DE.UTF-8 && sudo update-locale LANG=de_DE.UTF-8
Wenn man dann die Konsole schließt und wieder neu startet, sollte alles auf Deutsch sein.
- Updates können nicht schaden:
sudo apt update && sudo apt dist-upgrade
- Mit Enter bestätigten und wieder ein Weilchen warten...
- Nun installieren wir ein paar Pakete:
sudo apt install mc htop links manpages-de
- ist alles "Nice to have" - Kein muss!
- Um Dateien zwischen Windows und Ubuntu auszutauschen empfiehlt es sich den Midnight Commander mit
mc /mnt
zu benutzen.
- Ab hier machen Sie einfach bei Linux (fb_tools.deb für Debian / Mint / Ubuntu) weiter!
Getestet mit Windows 10 1809/1903/22H2 (64 Bit und PHP 8.1)
Linux (fb-tools.deb für Debian / Mint / Ubuntu)
Fritz!Box Tools unter Ubuntu und OpenSuse installieren (3/3)
Für Linux das auf Debian basiert, gibt es ein eigenes Installationspaket, das man sich herunterladen kann:
wget -O fb-tools.deb 'http://mengelke.de'`wget -qO- http://mengelke.de/Projekte/FritzBox-Tools.html | grep -aoE '/Projekte/FritzBox;fb-tools.deb\?[a-f0-9]+'`
- Und anschließend installiert man mit sudo-Rechten, eins der beiden Varianten:
sudo dpkg -i fb-tools.deb
und falls ein Abhängkeitsfehler auftritt, anschließend mit:
sudo apt install -f
beheben.
- Da
gdebi
nicht überall installiert ist, kann man es einfach mit sudo apt install gdebi-core
nachinstallieren.
Die eigentliche Installation wird mit sudo gdebi fb-tools.deb
ausgeführt!
- fb_Tools wird dann in
/usr/local/share/fb_tools
installiert und kann in der Konsole mit fb_tools
aufgerufen werden.
- Damit sich fb_Tools updaten kann, benötigt man Schreibrechte in
/usr/local/share
, dies erreicht man, indem der eigener Benutzer die Gruppe staff
hinzufügt wird:
sudo usermod -a -G staff $USER
nachdem man sich neu angemeldet hat, kann man fb_tools über das Internet updaten mit:
fb_tools info update
und die Plugins mit fb_tools plugin install update
aktualisieren/installieren.
- Optional kann noch einige PHP-Erweiterungen nachladen, die von fb_Tools unterstützt werden:
sudo apt install php-bz2 php-mysqli php-sqlite3
Linux (fb_tools.txz für Busybox, Arch/Manjaro, Debian/Mint/Ubuntu, Fedora, OpenSuse)
- Vorab sollten wir PHP und falls erforderlich, noch einige Pakete nachinstallieren:
- Debian/Mint/Ubuntu:
sudo apt install php-cli
(Alternativ: php8.1-cli
,php8-cli
, php7-cli
oder php5-cli
)
- OpenSuse:
sudo zypper install php8 php8-openssl php8-zlib
- Fedora:
sudo yum install php-cli
- Arch/Manjaro:
sudo pacman -S php
- Zuerst erstellen wir ein Verzeichnis und wechseln gleich dorthin:
mkdir fb_tools && cd fb_tools
- Nun laden wir das Archiv herunter und entpacken es in das Verzeichnis fb_tools:
wget -O- 'http://mengelke.de'`wget -qO- http://mengelke.de/Projekte/FritzBox-Tools.html | grep -aoE '/Projekte/FritzBox;fb_tools.txz\?[a-f0-9]+'` | tar -xJf-
- Der Aufruf ist wie bei einer normalen Skriptdatei:
./fb_tools.php
alternativ auch php fb_tools.php
Linux (fb_tools.php.gz)
- Wenn PHP noch nicht installiert sein sollte, wäre jetzt die Gelegenheit dazu:
- Debian/Mint/Ubuntu:
sudo apt install php-cli
(Alternativ: php8.1-cli
, php8-cli
, php7-cli
oder php5-cli
)
- OpenSuse:
sudo zypper install php8 php8-openssl php8-zlib
- Fedora:
sudo yum install php-cli
- Arch/Manjaro:
sudo pacman -S php
- Wer möchte kann sich noch ein Verzeichnis erstellen und in dieses Verzeichnis wechseln:
mkdir fb_tools && cd fb_tools
- Nun laden wir das komprimierte Script herunter:
wget -O fb_tools.php.gz 'http://mengelke.de'`wget -qO- http://mengelke.de/Projekte/FritzBox-Tools.html | grep -aoE '/Projekte/FritzBox;fb_tools.php.gz\?[a-f0-9]+'`
- Entpackt wird das komprimierte Script mit:
gzip -d fb_tools.php.gz
- Dann muss noch das Ausführen-Recht hinzugefügt werden:
chmod +x fb_tools.php
- Nun testen wir erstmal ob das Script Startfähig ist:
./fb_tools.php info
- Um die Optionalen Plugins nutzen zu können, brauchen wir ein Plugin-Verzeichnis:
mkdir plugin
- Und die Plugins installieren wir mit:
./fb_tools.php plugin install
- Nun ist fb_tools vollständig installiert und wie eine normale Skriptdatei aufgerufen werden:
./fb_tools.php
alternativ auch php fb_tools.php
Hinweis: In der Linux-Konsole muss man manchmal einige Parameter in Anführungszeichen setzen ("Doppelte" oder auch 'Einfache' )
Getestet mit:
MacOS X
Ähnlich wie unter Linux. Einer der Unterschiede ist, dass PHP schon zu den Bordmitteln von MacOS gehört.
- Nun laden wir das komprimierte Script herunter:
curl -o fb_tools.php.gz 'http://mengelke.de'`curl -s http://mengelke.de/Projekte/FritzBox-Tools.html | grep -aoE '/Projekte/FritzBox;fb_tools.php.gz\?[a-f0-9]+'`
- Nach dem herunterladen, entpacken wir es mit:
gzip -d fb_tools.php.gz
- Dann muss noch das Ausführen-Recht hinzugefügt werden:
chmod +x fb_tools.php
- Und gestartet wird es wie eine normale Skriptdatei:
./fb_tools.php
alternativ auch php fb_tools.php
Getestet mit MacOS X 10.6 Snow Leopard (PHP 5.3)
Erfolgreiche Rückmeldungen: (Vielen Dank an die Tester)
- Mac OS Sierra 10.12.4 mit PHP 5.6.30 von Roland F.
- Mac OS Catalina 10.15.6 von Dirk B.
- Mac OS Catalina 10.15.7 mit PHP 7.3.11 von Steven K.
MacOS 12 Monterey
Ab MacOS 12 Monterey wird PHP nicht mehr mitgeliefert und muss nachinstalliert werden.
- Dazu geht man einfach auf die Seite brew.sh und installiert den Paketmanager Homebrew nach.
- Anschließend kann man alle notwendigen Pakete nachinstallieren:
brew install php
- Dann erstellen wir ein Verzeichnis und wechseln gleich dorthin:
mkdir fb_tools && cd fb_tools
- Und laden das Archiv herunter und entpacken es in das Verzeichnis fb_tools:
curl -o- 'http://mengelke.de'`curl -s http://mengelke.de/Projekte/FritzBox-Tools.html | grep -aoE '/Projekte/FritzBox;fb_tools.txz\?[a-f0-9]+'` | tar -xJf-
- Der Aufruf sollte wie bei einer normalen Skriptdatei sein:
./fb_tools.php
- Sollte fb_Tools PHP nicht finden können, dann probieren sie es mit
php fb_tools.php
Erfolgreiche Rückmeldung(en):
- Mac OS Monterey 12 von Georg M.
- Mac OS Monterey 12 mit PHP 8.1 von Nicola T.
- Mac OS Ventura 13 mit PHP 8.1 von Alexander Palm
- Mac OS Ventura 13 mit PHP 8.2.1 mit Homebrew 3.6.19 von Axel Köster
- Mac OS Sonoma 14 mit PHP 8.2.11 mit Homebrew 4.1.15 von Axel Köster
- Sollte es jemanden geben andere Tests/Erfahrungen gemacht hat, kann es mir gerne mitteilen
Start und Parameter:
Fritz!Box Tools: Parameterübergabe (1/2)
Hier in dieser Anleitung und in der Hilfsausgabe von fb_Tools werden Pflichtparameter in [Eckigen Klammen]
und Optionale Parameter in <Splitzen Klammen>
angegeben.
Ist die Bezeichnung in Eckigen/Spitzen Klammern kleingeschrieben, dann handelt es sich um die Bezeichnung des Parameters, der für eindeutige Bezeichnung mit angegeben werden kann. (Siehe Argumente)
Hilfe
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
- Nur Kontext-Optionen (Optionen für eine bestimme Funktion) mit fb_tools -h:k
Und kombiniert würde auch gehen: fb_tools -h:bo
oder fb_tools -h:a
für Alles
Fritzbox-Angabe als Argument
In dem aller ersten optionalen Parameter, kann man die Zugangsdaten der Fritz!Box direkt angeben. Diese Parameter ist ein Sonder-Parameter und wird vor dem Parsen der Argumente abgefragt. Folgende Schema-Varianten sind möglich:
fritz.box
- (Standard)
Kennwort@fritz.box
- (Heimnetz login)
Benutzername:Kennwort@fritz.box
- (Heimnetz login mit Benutzername)
Protokoll://Benutzername:Kennwort@fritz.box:Port
- (Login per Fernwartung)
Protokoll://Benutzername:Kennwort@fritz.box:Port#UI-Password
- (Sonderfall für Fritz!OS 4)
Protokoll://Benutzername:Kennwort@fritz.box:Port#GOOGLETWOFACTORAUTHENTICATIONOTP
- (Ab Fritz!OS 6.80)
Preset-name::/Pfad/fb_config.php
- Preset-Angabe mit eigener Konfig-Datei
Beispiel:
fb_tools fritz.box logintest
fb_tools geheim@fritz.box logintest
fb_tools max:kennwort@fritz.box logintest
fb_tools https://admin:password@0123456789abcdef.myfritz.net:65432 logintest
fb_tools https://max:headroom@fb7170.dyndns.xx:443#N37w0rk23 logintest
fb_tools https://fritz1337:spindel4223@3896c0d0beab82cc.myfritz.net:65443#VI2Y57RPJJTGQ4HWVIEUGGI3WZVK5HOU
fb_tools meinebox::/media/veracrypt1/Fritz!Box/fb_config.php
Fritz!Box-Angabe als Optionen
Es gibt als Alternative auch Option-Parameter, die diesen ersten Parameter überflüssig machen können.
-fb:"[Fritz.Box]"
-pt:"[Port]"
-pw:"[Password]"
-un:"[Username]"
-fw:"[Firmware]"
-p:"[Protokoll]"
-ui:"[UI-Kennwort]"
-tf:<OTP-Secret>
Fritz!Box-Angabe in fb_config.php
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.
Diese Datei kann mit Lese-Rechten versehen oder auf in einen verschlüsselten Container speichern. - Generell ist nicht zu Empfehlen die Zugangsdaten direkt in die Konsole einzugeben, da einige Betriebssysteme diese Eingaben in einer Log-Datei speichern.
fb_Tools sucht die "fb_config.php" oder auch ".fb_config.php" zuerst im Aktuellen Verzeichnis, anschließend im Script-Verzeichnis, wo fb_Tools selber liegt.
Es gibt noch eine Optionsangabe -cc:[configfile]
, wo man den genauen Ort der Konfig-Datei angeben kann.
Beispiel in fb_config.php: (Eine Beispieldatei finden Sie im Archiv fb_tools.7z.)
'maxbox' => array('sock' => 'http', 'host' => 'fritz.box', 'port' => 80, 'user' => 'max', 'pass' => 'h34dr00m'),
'myfritz' => array('sock' => 'https', 'host' => '01234567890abcdef.myfritz.net', 'port' => 443, 'user' => 'max', 'pass' => 'h34dr00m', 'uipw => 'GOOG LETW OFAC TORA UTHE NTIC ATIO NOTP'),
'smarthome' => array('host' => 'fritz.box', 'user' => 'clever', 'pass' => 'smart'),
Beispiel aufruf:
fb_tools maxbox logintest
fb_tools myfritz logintest
fb_tools smarthome logintest
fb_tools logintest -cc:/media/veracrypt1/Fritz!Box/fb_config.php -ps:meinebox
fb_tools meinebox::'/media/veracrypt1/Fritz!Box/fb_config.php' logintest
fb_tools 7456 logintest
fb_tools mybox logintest -tf -d
Zwei-Faktor-Authentisierung
Für den automatischen Login und Bearbeitung trotz eines zweiten Faktors benötigt man das 160 Bit Geheimnis für den Google_Authenticator.
fb_Tools kann ab Version 0.32 die Tokens selber erzeugen und zur Fritz!Box schicken. In der fb_config gibt es jetzt zwei Variablen dafür: uipw
und totp
.
Der unterschied zwischen den beiden Variablen ist, dass totp
IMMER einen zweiten Faktor auslöst, während uipw
den zweiten Faktor nur dann auslöst, wenn er zwingend gebraucht wird.
Wird NICHTS angegeben, dann bleibt etwa 30 Sekunden Zeit, für das Knöpfchen drücken oder das wählen der Telefonnummer mit dem Telefon. fb_Tools unterstützt noch keine Interaktiven eingaben! Die Zeit kann man mit der Option -t:[sec]
, um einige Sekunden verlängern, bis die Fritz!Box selbst abbricht.
Ältere Fritz!Box-Angabe als Fernwartung (Ein Sonderfall mit Fritz!OS 4.x)
Als die Fernwartung gerade frisch eingeführt wurde und noch mit HTTP-Auth Basic realisiert wurde, (Ja, wirklich ) gab es noch keine Benutzerverwaltung in der Fritz!Box!
D.H. man brauchte für die Fernwartung Benutzer & Kennwort + Anmeldekennwort der Fritz!Box-Oberfläche. fb_Tools unterstützt diesen Sonderfall mit:
fb_tools https://Benutzername:Kennwort@fritzbox.dyndns.xx:443#UI-Password logintest
Man beachte, dass man dazu zwingend PHP 5.4 oder PHP 5.5 benötigt, da neuere PHP-Versionen mit entsprechender OpenSSL-Version diesen alten Login-Prozess nicht mehr unterstützen.
(Ein erfolgreicher Login, ist mir nur unter Windows gelungen.)
Ab Fritz!OS 7.24 wird ein neues Login-Verfahren (PBKDF2) eingesetzt, dass idealerweise PHP 5.5 voraussetzt. Alternativ reicht auch die HashTool-Bibliothek. Allerdings sollte man dann Mindestens PHP 5.1.2 oder die MHash-Erweiterung haben. Mit SHA256-Bibliothek geht es Notfalls auch, ABER dann würde der Login ca. 15 Minuten dauern. (Das MD5-Login-Verfahren kann man mit -li:1
erzwingen.)
Ab Fritz!OS 7.39 ist die Zwei-Faktor-Authentisierung zur Pflicht geworden. (d.H. Man kann sie nicht mehr mit Bordmitteln deaktivieren). Daher wird ab fb_Tools 0.32 die Zwei-Faktor-Authentisierung voll unterstützt.
Mit der Option -tf
kann die 2FA Initialisiert werden. Kennt man das Geheimnis des Google_Authenticators, kann dieses Geheimnis mit -tf:GOOGLETWOFACTORAUTHENTICATIONOTP
übergeben und der Token wird automatisch erzeugt und an die Fritz!Box gesendet.
Bit | Beschreibung |
0 | Warnung/Hinweis (Kein Fehler) |
1 | Ungültige Parameter |
2 | Login Fehlgeschlagen |
3 | Ressource nicht gefunden/erhalten/verfügbar (Ladefehler/Keine Berechtigung) |
4 | Falsche/defekte/ungültige Ressource |
5 | Schreibfehler (Schreibschutz/Kein Platz) |
6 | Prozedur auf Ressource nicht möglich |
7 | Bits 0-6 sind ungültig und ab hier kommen 128 mögliche Error-Codes |
Fehlermeldungen
fb_Tools bietet für alle Funktionen eine Vielzahl von Fehlermeldungen, die von Internen Funktionen vererbt werden können.
Alle Fehlermeldungen sind in Deutsch verfasst - Manchmal mit einen kleinen Schuss Humor
Sind die Fehlermeldungen dennoch in Englisch dann kommen sie nicht von fb_Tools sondern von PHP und wurden nur an fb_Tools weiter vererbt.
Mit der Aktivierung des Debugmodus -d
kann man ermitteln bei welcher Funktion welcher Fehler aufgetreten ist.
Ab fb_Tools 0.30 wird im Fehlerfall auch ein Return_Code zurück gegeben. Die ersten 7 Bits bestimmen, in welchen Gruppen der Fehler zuzuordnen ist. Das letzte Bit macht die Zuordnung der 7 Gruppen ungültig und kann bis zu 128 Sondermeldungen enthalten.
- 128 Abbruch durch Benutzer
- 254 STOP durch fb_Tools
- 255 PHP Fehler (Syntax oder fehlende/falsche/ungültige Funktion)
Argumente
Fritz!Box Tools: Parameterübergabe (2/2)
Ab fb_Tools 0.25 müssen die Parameter NICHT mehr in der vorgegebene Reihenfolge eingegeben werden, sondern können fast in beliebiger Reihenfolge übergeben werden.
Alle Parameter haben einen eigenen Namen z.B. mode:
, func:
, file:
etc.
Die Trennung von Namen und Inhalt kann entweder mit :
oder =
angegeben werden.
Beispiel:
fb_tools mode:info func:echo str:"Hello World"
fb_tools mode=info func=echo str="Hello World"
Benannte Argumente brauchen keine vorgegebene Reihenfolge.
Beispiel:
fb_tools func:echo str:"Hello World" mode:info
Ebenso können benannte Argumente, wenn erforderlich, mehrmals angegeben werden. Dafür gibt zwei Schreibweisen:
Beispiel:
fb_tools mode:info func:arg arg:multi multi:1.Argument multi:2.Argument multi:3.Argument
fb_tools mode:info func:arg arg:multi multi[/]:1.Argument/2.Argument/3.Argument
(Das Trennzeichen kann ein beliebiges sein!)
Es ist möglich benannte und unbenannte Argumente zu kombinieren.
Man muss nur darauf achten, dass die unbenannten Argumente in der korrekten Reihenfolge übergeben werden.
Beispiel:
fb_tools konfig file-decrypt fritz!box.export geheim fritz!box_decrypt.export
fb_tools mode:konfig func:file-decrypt if:fritz!box.export of:fritz!box_decrypt.export pass:geheim
fb_tools konfig file-decrypt fritz!box.export fritz!box_decrypt.export pass:geheim
Optionen
Ab fb_Tools 0.28 können die Optionen zusammen mit den Argumenten übergeben werden und dürfen nicht im letzten Parameter zusammen geschrieben werden.
Alle Optionen müssen mit ein Minus-Zeichen eingeleitet werden.
Soll ein Wert übergeben werden, muss hinter der Option ein ":" folgen und dann der Wert. Erlaubt ist auch den Wert in Anführungszeichen zu setzen.
Beispiel:
fb_tools fritz.box info -d-w:80-o:ausgabe.txt
- Ab fb_Tools 0.28 nicht mehr Gültig!
fb_tools fritz.box info -d -w:80 -o:"ausgabe.txt"
-b:[Buffergröße], -p:[Protokoll], -t:[TCP/IP-Timeout], -ua:[User-Agent]
Mit diesen Optionen kann man Feintuning bei den TCP/IP Verbindungen einstellen. In der Regel werden diese nicht benötigt.
-bz:[0-9] für BZip2 in ZIP-Archiven
Wenn etwas mit ZIP gepackt werden soll, kann mit dieser Option bestimmt werden, ob die Daten im Archiv mit BZip2 gepackt werden soll und welche Kompressionsstärke verwendet werden soll. (Hierzu wird die PHP-Erweiterung "php-bz2" zwingend benötigt!)
-c:[code] für CharCode
Gruppe | Kodierungen |
Windows | cp437, cp850, dos, oem |
Ansi | cp1252, cp851, cp28591, iso8859/1, ansi, ascii |
Wine | cp1250, cp852, cp28952, iso8859/2 |
7Bit-ASC | cp65000, 7bit, asc, utf7 |
UTF-8 | cp65001, utf8 |
Weitere | auto, html, none |
Je nach Betriebssystem werden verschiedene 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, cp851, cp852, cp852, cp1250, cp1252, cp28591, cp28592, cp65000, cp65001, dos, html, iso8859/1, iso8859/2, oem, utf7, utf8 ("auto" ermittelt die Kodierung automatisch - Fackback ist 7bit oder utf7 - Und "none" unterdrückt die Textausgabe.)
Beispiel:
fb_tools info -c:oem
(Für Windows)
fb_tools info -c:utf8
(Für Linux)
-cc:[Config-File] für Eigene Einstellungen
Falls man mehrere Konfig-Dateien oder die Konfig-Datei von einen besonderen Ort laden möchte, kann mit -cc die Datei manuell angeben.
Wichtiger Hinweis: Wenn die Option -cc ausgewertet wird, ist der 1.Parameter für die Fritz!Box Angabe ausgewertet und verworfen worden, da die Abgabe zu dem Zeitpunkt nicht gefunden werden könnte. Eine Alternative ist eine andere Schreibweise für den 1.Parameter: name::/path/fb_config.php
.
Beispiel:
fb_tools supportdaten -cc:/veracrypt1/fritzbox/fb_config.php -ps:fb7590
fb_tools fb7590::/veracrypt1/fritzbox/fb_config.php supportdaten
-cm für Cron-Modus
Falls Automatisch per Cron-Dienst aufgerufen werden soll, sollte man zusätzliche diese Option aktivieren.
Damit werden alle unnütze Funktionen, wie Autoupdate oder Terminal-Erkennung deaktiviert. (Ältere fb_Tools-Versionen hatten bei jedem Aufruf, unnötigerweise den Update-Server kontaktiert.)
-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:
-gz:[Level] für GZip Komprimierung
Einige Funktionen erlauben es Ausgabe-Dateien mit GZip zu komprimieren. Diese müssen mit .gz enden. Als Level wird eine Zahl zwischen 0 bis 9 erwartet. (0 -> Unkomprimiert im GZ-Header / 9 -> Maximale Komprimierungsstärke)
Beispiel:
fb_tools fritz.box sd SupportDaten.tar.gz extrakt -gz:9
-h:<a|b|k|o> für Hilfe
Alle Funktionen haben 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
fb_tools bi -h
fb_tools ss -h
-nu für KEIN Update-Check
Unterdrückt die Regelmäßige Update-Prüfung.
Beispiel:
-o:[Datei] für Output
Diese Option ist eigentlich Identisch mit Stdout - Alle Ausgeben werden in die angegebene Datei geschrieben. Nur hier wird für die Ausgabe nichts verändert. Die Zeichenkodierung der Ausgabe von fb_Tools selber ist immer Ansi (ISO_8859-1) oder gleich der Ausgabecodierung der Fritz!Box! (Mischkodierungen sind Möglich!)
Beispiel:
fb_tools info -o:"Datei.txt"
Login-Alternative
-p:[Protokoll]
-fb:[fritz.box]
-un:[Benutzername]
-pw:[Kennwort]
-pt:[Port]
-fw:[Firmware-Version]
-li:[Login-Version]
-tf:<OATH-TOTP>
-ui:[UI-Kennwort]
Optionsparameter für Login
|
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)
Protokoll dient als eindeutige Angabe ob HTTPS genutzt werden soll oder nicht. Folgende Werte sind möglich: auto, http, https, ssl, tls.
Bei der Angabe https wird ab PHP 5.4 die Zertifikatsprüfung deaktiviert.
Beispiel:
fb_tools info -d -fb:fritz.box -pw:kennwort -fw:434
fb_tools fritzbox info -d -un:max -pw:headroom -fw:530
-pe:[Extension] für PHP-Erweiterung
Wenn fb_Tools irgendeine PHP-Erweiterung laden soll, kann dies mit -pe:[...] erzwingen. Die Angabe wird direkt an dl()
übergeben.
Beispiel:
fb_tools info et -pe:"php_openssl.dll"
-ps:[Preset-Name] in Verbindung mit -cc:[config-file]
$cfg['preset']['homebox'] = array(
'sock' => 'http', # Protokoll (auto, http, https, ssl, tls)
'host' => 'fritz.box', # IP/DNS-Adresse der Fritz!Box
'port' => 80, # Port (http -> 80, https -> mitmproxy.org/443)
'user' => 'max', # Benutzername
'pass' => 'j7w534jqhh', # Kennwort
'uipw' => false, # Fritz!OS4/5 Anmelde-Kennwort bei Fernwartung
'totp' => false); # OS6.80+ Zwei-Faktor-Authentisierung bei Login
Beispiel für fb_config.php
|
Übernimmt die Fritz!Box angaben von der fb_config.php aus der Preset-Liste.
Diese Option kann mit -cc:[config-file]
kombiniert werden.
Sinn macht das, wenn fb_config.php irgendwo versteckt werden soll, da dort die Zugangsdaten in Klartext drin stehen.
Beide Optionen können mit dem 1.Parameter kombiniert werden: name::/path/fb_config.php
.
Beispiel:
fb_tools sqldb event -cc:'/media/veracrypt1/fb_config.php' -ps:homebox
fb_tools dial tel:'**623' -cc:"z:/fb_config.php" -ps:homebox
fb_tools homebox::"z:/fb_config.php" dial tel:'**623'
-px:[host:port] für HTTP-Proxy
Ab fb_Tools 0.32 werden Proxys unterstützt. Alle Netzwerk-Verbindungen laufen dann über diesen Proxy.
Da es nur eine einfache Implementierung für Debug-Zwecken (z.B. mitmproxy.org) gedacht ist, werden keine Proxys unterstützt die eine Authentifizierung benötigen.
-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 logintest -s:0123456789abcdef -fw:456
fb_tools logintest -s:sid.json
-ua:[String] für UserAgent
Definiert einen eigenen UserAgent. FB_Tools generiert ein UserAgent mit Technischen-Daten vom Betriebssystem. Wer dies nicht möchte, kann mit der Option einen eigenen festlegen. In der Konfig-Datei kann dies mit $cfg['head'] = array('User-Agent' => 'fb_tools');
dauerhaft festlegen.
Beispiel:
fb_tools info webget http://example.org -ua:"fb_tools"
-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:
-zb:[Bits] & -zp:[Password] für ZIP-Verschlüsselung
Ab fb_Tools 0.32 werden ZIP-Archive unterstützt. Mit den Optionen -zb
und -zp
kann die Verschlüsselung beeinflusst werden.
Mit -zb
kann die Verschlüsselungstiefe bestimmt werden. (Erlaubt sind: 128, 192 und 256) Und mit -zp
kann das Archiv-Kennwort übergeben werden.
Einfache Funktionen:
Alle Funktionen werden mit den Parameter mode
definiert und lassen sich mit den angezeigten Großbuchstaben abkürzen:
Beispiel:
BoxInfo -> bi
WahlHilfe -> wh
GetIP -> gip
Konfig ImPort-CalcSum -> k ipcs
Ordner bzw. Ordernamen
Wenn Sie einen Ordner in den Parametern angeben, wird Empfohlen ein Slash /
oder Backslash \
dahinter zu setzen, damit fb_Tools weiß, 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.
Einige Funktionen erlauben es statt ein Ordner ein Tar-Archiv anzugeben. Der Dateiname muss auf .tar .tgz oder .tar.gz enden!
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.
Einige Funktionen erlauben es GZip/BZip komprimierte Dateien zu verarbeiten. Der Dateiname muss dann auf .gz für GZip oder .bz2 für BZip enden!
Automatische HTTPS-Erkennung
Ist OpenSSL verfügbar, versucht fb_Tools anhand der Portnummer zu erkennen, ob der Request mit HTTP oder HTTPS gemacht werden soll:
Für Port 80, 8080 und 49000 verwendet fb_Tools das Protokoll HTTP und für alles andere HTTPS (Wenn verfügbar...)
Für HTTPS-Verbindungen zu aktuellen Fritz!Boxen oder AVM-Servern, benötigt man entsprechende aktuelle PHP-Versionen mit OpenSSL-Erweiterung.
$cfg['drag'] = array(
'*' => 'info hash *',
'csv' => 'info csv *',
'txt' => 'info cat *',
'json'=> 'info json *',
'tar' => 'info extrakt *',
'tbz' => 'info extrakt *',
'tgz' => 'info extrakt *',
'zip' => 'info extrakt *',
'export' => 'konfig fcs * -d',
);
|
Drag'n'Drop:
Wird nur EIN Parameter übermittelt, die den Pfad einer Datei angibt, dann werden die Befehle aus der Variable $cfg[drag] angewendet.
Bis fb_Tools 0.31 war die Variable nur ein String. Ab fb_Tools 0.32 darf diese Variable auch ein Array sein, die mehrere Dateitypen zulässt.
Der Schlüsselname ist gleichzeitig der Dateityp (Ausnahme *
für Universal) und in der eigentlichen Variable dient *
für den Dateinamen, der beim Drag'n'Drop übermittelt wird.
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 ist, dass der Desktop-Manager dies unterstützt und für Windows zusätzlich, dass die Umgebungsvariable php
auf den genauen Pfad von php.exe verweist, da das aktuelle Verzeichnis auf verschiedene Orte zeigen kann.
BoxInfo <file:Datei>
Fritz!Box Tools: Einfache Funktionen
Liest "jason_boxinfo.xml" und "juis_boxinfo.xml" aus gibt diesen aufbereitet in leserlicher Form aus!
Der Optionale Parameter erlaubt eine vorhandene Boxinfo-Datei zu parsen.
Beispiele:
fb_tools fritz.box boxinfo
fb_tools boxinfo file:jason_boxinfo.xml
GetIP <filter>
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.
Mit den Filter kann nur den entsprechenden Eintrag ausgeben lassen.
Hinweis: Diese Funktion ist nicht über HTTPS nutzbar!
Beispiele:
fb_tools fritz.box getip
fb_tools fritz.box gip filter:ipv4
LED [auto|off|low|on|high|aus|dunkel|an|hell|test]
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. für Internet) die leider weiterhin leuchten.
Mit der Test Funktion kann der Status der LEDs abgefragt werden.
Ab Fritz!OS 7.20 gibt es zusätzliche Optionen für Helligkeit Hell
/Dunkel
bzw. low
/high
sowie auto
für Automatische Helligkeitsanpassung. (Natürlich muss das auch die Fritz!Box unterstützen!)
Beispiele:
fb_tools fritz.box led off
fb_tools fritz.box led test
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!
Hinweis: Diese Funktion ist nicht über HTTPS nutzbar!
SupportDaten <file:Datei|Ordner|.> <func:ExTrakt|Datei> <-tm:(on|off)>
Alle Support-Daten der Fritz!Box auslesen. Beim Aufruf wird die Support-Datei im aktuellen Arbeitspfad oder im Angegebenen Verzeichnis erstellt.
Mit Extrakt
können die SupportDaten in einzelne Dateien auf gesplittet werden. (Ähnlich die Konfig ExTrakt) und man kann zusätzlich die Telemetrie-Daten mit -tm:on
ein und -tm:off
wieder ausschalten.
Statt Extrakt
kann man mit den Parameter func
auch eine Datei angeben, die auf gesplittet werden soll.
Beispiel:
fb_tools fritz.box supportdaten Support/ et
fb_tools fritz.box sd support.txt -tm:on
fb_tools sd Support/ func:supportdata.txt
SystemStatus <code: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"
Traffic
Hier wird sämtlichen Daten-Zähler der Fritz!Box ausgelesen und in einer Tabelle ausgegeben. Weitere Funktionen/Optionen gibt es bislang keine!
Export Funktionen:
AnrufListe <file:Datei> <from> <to>
Fritz!Box Tools: Anrufliste & Ereignisse
Zeigt eine Anrufliste aller Telefonate der Fritz!Box an. Die Anrufliste wird als CSV-Datei gespeichert.
Wobei der Dateiname mit strftime geparst wird.
Der Separator ist mit der Option -cs:
frei wählbar. Mit der Option -ch
wird noch ein Kopfzeile an jeder neuen Datei erstellt.
Falls Sie ein anderes Datum-Format in der Ausgabe wünschen, können Sie es mit -ft:'strftime'
ändern.
Mit der Option -lf
kann die Anrufliste als Logfile gespeichert werden. (d.H. Alle Einträge werden mit strftime geparst und am Ende der Datei angehängt oder in einer neuen Datei gespeichert)
Mit den Parameter from
und to
kann die Anrufliste auf ein Zeitfenster reduziert werden. (Die Zeitangaben werden mit strtotime() geparst)
Beispiele:
fb_tools fritz.box anrufliste
fb_tools fritz.box mode:anrufliste file:anrufe.csv -cs:","
fb_tools fritz.box anrufliste calls.csv -ch
fb_tools fritz.box al file:calls-%y%m%d.log -lf
Ereignisse <file> <filter> <from> <to> <-cs:[Separator]> <-lf>
Zeigt alle Ereignisse der Fritz!Box an. Die Ereignisse können als CSV-Datei gespeichert werden.
Wobei der Dateiname mit strftime geparst wird.
Der Separator ist mit der Option -cs frei wählbar.
Falls Sie ein anderes Datum-Format in der Ausgabe wünschen, können Sie es mit -ft:'strftime'
ändern.
Mit der Option -lf
können die Ereignisse als Logfile gespeichert werden. (d.H. Alle Einträge werden mit strftime geparst und am Ende der Datei angehängt oder in einer neuen Datei gespeichert)
Mit den Parameter from
und to
können die Ereignisse auf ein Zeitfenster reduziert werden. (Die Zeitangaben werden mit strtotime() geparst)
Alle Ereignisse können nach Kategorien gefiltert werden. Folgende Filter/Kategorien stehen zur Verfügung: alle, telefon, internet, usb, wlan, system
Beispiele:
fb_tools fritz.box ereignisse
fb_tools fritz.box mode:Ereignisse file:event-internet.csv filter:internet -cs:";"
fb_tools fritz.box Ereignisse event.csv
fb_tools fritz.box e -pw:secret
fb_tools fritz.box e file:logs-%y%m%d.log filter:alle -lf
Konfig [export|extrakt|file|import] <if/of:Datei/Ordner> <pass:Kennwort>
Fritz!Box Tools: Konfig-Dateien & Wahlhilfe
Mit der Konfig-Funktion können Sie die Einstellungen unverändert der Fritz!Box exportieren:
fb_tools fritz.box konfig export <of:Datei>
und importieren:
fb_tools fritz.box konfig import [if:Datei]
.
Beim Export ist es mit fb_tools fritz.box konfig extrakt <of: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 fritz.box konfig import-calcsum [if: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 6590) vornehmen).
Eine Alternative dazu ist Fritz!Box JSTool in JavaScript oder Fritz!Box VBScripte in VBScript
Möchte man seine Zugangsdaten in Klartext angezeigt bekommen, kann man sich diese mit:
fb_tools fritz.box konfig export-decrypt
entschlüsseln lassen. Dazu wird entweder die PHP-Erweiterung: OpenSSL oder MCrypt benötigt. Als Alternative reicht eins der AES-Scripte, die im Archiv fb_tools.7z mit beiliegen. (Sind aber sehr langsam!)
Mit fb_tools info extension
können sie überprüfen, ob und welche Erweiterung erfolgreich geladen werden konnte. (OpenSSL ist die beste Wahl)
Möchte man die Daten aus einer vorhandenen Konfig-Datei in Klartext, dann entschlüsselt man die Daten ohne Fritz!Box mit:
fb_tools konfig file-decrypt [if:Datei] [pass:Kennwort]
.
Die Kennwort-Angabe darf mehrfach vorkommen oder der Dateiname einer Kennwort-Datei.
Beispiel:
fb_tools k fdc ./fb.export pass:admin pass:admin123 pass:ADMIN pass:ADMIN123
fb_tools k fdc ./fb.export pass[/]:admin/admin123/ADMIN/ADMIN123
fb_tools k fdc ./fb.export ./passwd.txt
Bei Konfig-Dateien die OHNE Kennwort gespeichert wurden, wird folgendes benötigt:
Beispiel:
fb_tools_dev k fdc if:fb7330_nopass.export pass:11:23:58:13:21:34
fb_tools_dev k fdc if:fb7530_nopass.export pass:K175.678.30.000.196-98:9B:CB:30:01:96
Hinweise:
- Ab Fritz!OS 6.2 sollte man die Konfig nur MIT Kennwort exportieren, da man sie sonst nicht mehr zurück spielen kann.
- Das Konfig-Format hat sich ab Fritz!OS 7.19 geändert - fb_Tools unterstützt dies ab Version 0.27!
- Bei der Entschlüsselung wird KEINE Sicherheitslücke oder sonstige Schachstelle ausgenutzt. - Ohne Anmelde/Export-Kennwort funktioniert das NICHT!!!
- Entschlüsselte Konfig-Dateien können nicht wieder zurück importiert werden, da das Konfig-Kennwort nicht mehr existiert.
- Die "Alte" Entschlüsselungsfunktion aus fb_Tools 0.13 bis 0.22 wird nicht mehr weiterentwickelt und wurde in ein Plugin ausgelagert. Die benötigt eine Fritz!Box mit FRITZ!OS 5 bis 7.
- Sollte es beim entschlüsseln der Zugangsdaten Probleme geben, gibt es mit Fritz!Box JSTool noch ein alternatives Entschlüsselungs-Tool.
Smarte Funktionen:
WahlHilfe [tel:Rufnummer] <fon:Telefon>
Die Funktion Dial
ist in Wahlhilfe
umbenannt worden, aber dial
ist z.Z. noch gültig.
Nach Angabe einer Telefonnummer wählt die Fritz!Box selber und gibt das Telefonat an ein bestimmtes Telefon weiter.
Es werden nur Zahlen sowie *
und #
akzeptiert.
Alle anderen Zeichen werden für die Telefonnummer ignoriert. (Leerzeichen dürfen nicht ohne "Anführungszeichen" übergeben werden)
Beispiel:
fb_tools fritz.box wahlhilfe *111#0123456789
fb_tools fritz.box wahlhilfe "*111# 0123 456789"
Besteht eine Rufnummer nur aus Sonderzeichen dann wird aufgelegt!
Beispiel:
Code: | Anschluss: |
1-4 | FON 1-4 |
50 | ISDN & DECT |
51-58 | ISDN 1-8 |
60-65 | DECT 1-6 |
Optional kann zusätzlich das Telefon für die Wahl mit angegeben werden! Man kann entweder die Interne Rufnummer für das Telefon verwenden oder den Anschlussnamen. ( OHNE Leerzeichen!)
Beispiel:
fb_tools fritz.box wahlhilfe 0123456789 1
fb_tools fritz.box wahlhilfe 0123456789 FON1
fb_tools fritz.box wahlhilfe 0123456789 61
fb_tools fritz.box wahlhilfe 0123456789 DECT2
Hinweis: Die Wahlhilfe der Fritz!Box unterstützt KEINE IP-Telefone!
Es werden außer im Fehlerfall, keinerlei Ausgaben gemacht!
KomFort <func> <cmd:an|on|aus|off|test> <id>
Funktionen (func) | Beschreibung |
list | Listet alle Schaltmöglichkeiten auf |
wlan | wifi | Funknetzwerk schalten |
gast | guest | Gastnetz schalten |
wlan-wps | wifi-wps | WPS für das Funknetz aktivieren |
gast-wps | guest-wps | WPS für das Gastnetz aktivieren |
ruf | rules | Rufumleitungen schalten |
ab | tam | Anrufbeantworter schalten |
wecker | alarm | Weckrufe schalten |
Mit der Komfort-Schnittstelle können die WLAN, Anrufbeantworter, Rufumleitungen und Wecker an und ausschalten.
Technisch läuft das über die MyFRITZ-Schnittstelle und wird erst ab Fritz!OS 6.80 unterstützt.
Bis Fritz!OS 7.20 reichte es, wenn als Parameter der Befehl <cmd> und die ID <id> übergeben wurde. Aber ab Fritz!OS 7.20 wurde die API vollständig geändert und die Funktion <func> muss mit übergeben werden, da die ID nicht mehr eindeutig ist.
Es gibt nur drei Befehle <cmd> die man schicken kann: an, aus oder test
Beispiele:
fb_tools fritz.box komfort list
- Listet alle Komfortfunktionen auf, die geschaltet werden können
fb_tools fritz.box komfort wlan aus
- Schaltet das Funknetzwerk ab
fb_tools fritz.box komfort gast-wps an
- Aktiviert das Gast-WPS, um ein Gast ins Gast-WLAN rein zu lassen
fb_tools fritz.box mode:komfort func:rufumleitung cmd:aus id:rul_4
- Rufumleitung rul_4 deaktivieren
fb_tools fritz.box komfort wecker test 2
- Schaltstatus von Weckruf #3 abfragen (Fritz!OS 7.20)
fb_tools fritz.box komfort test alarm1
- Schaltstatus von Weckruf #2 abfragen (Fritz!OS 6.80)
fb_tools fritz.box kf ab an 2
- Anrufbeantworter No 3 anschalten
fb_tools fritz.box kf wecker aus 0
- Wecker #1 ausschalten
Smarthome [func:Funktion] <ain> <hkr|kelvin|dimm|hsv|color|file>
Fritz!Box Tools: Komfort & Smarthome
Mit dem Modus SmartHome kann Aktoren wie Schaltsteckdosen, Heizkörperregler, Lampen und Rolladen schalten und auslesen.
Um ein Aktor direkt zu steuern muss man die AIN
oder die ID
wissen. Alternativ kann man auch den Namen verwenden. (Letztere enthält meistens Leerzeichen und muss "Anführungszeichen" übergeben werden).
Eine Übersicht aller Aktoren erhält man mit den Befehl list
:
list
Gibt eine einfache Übersicht aller Aktoren aus.
Beispiel:
fb_tools fritz.box smarthome list
csv <file:Datei>
Gibt wie list
, eine einfache Übersicht aller Aktoren als CSV-Datei aus.
Mit der Option -cs
kann man den Separator frei wählen.
Beispiel:
fb_tools fritz.box smarthome csv overview.csv -cs:","
json <file:Datei>
Gibt im Gegensatz zu list
oder csv
eine umfangreiche Liste aller Aktoren als JSON-Datei aus.
Beispiel:
fb_tools fritz.box smarthome json overview.json
info [ain:Aktor]
Hiermit kann man sich sämtliche Informationen über einen Aktor als Texttabelle anzeigen lassen.
Als Parameter ain
wird eine eindeutige Aktor-ID erwartet, die eine AIN, ID oder der Name sein kann. (AIN und ID können OHNE Leerzeichen angegeben werden!)
Beispiel:
fb_tools fritz.box smarthome info 20
fb_tools fritz.box smarthome info 098760054321
fb_tools fritz.box smarthome info 04:08:15:16:23:42
fb_tools fritz.box smarthome info Pflanzenlicht
an/aus/off/on/schalt/switch [ain:Aktor]
Mit diesen 6 Befehlen lassen sich Schaltbare-Aktoren entsprechend schalten.
Als Parameter ain
wird eine eindeutige Aktor-ID erwartet, die eine AIN, ID oder der Name sein kann. (AIN und ID können OHNE Leerzeichen angegeben werden!)
Mit der Option -f
kann man den Aktor direkt, ohne weitere Hilfestellung, ansprechen. (d.H. Es muss die korrekte AIN angegeben werden - ID oder Name gehen dann nicht!)
Beispiel:
fb_tools fritz.box smarthome on 21
fb_tools fritz.box smarthome aus 098760054321
fb_tools fritz.box smarthome switch 04:08:15:16:23:42 -f
fb_tools fritz.box smarthome schalt Pflanzenlicht
close/down/runter/stop/halt/open/up/rauf [ain:Aktor]
Damit lassen sich die Rolladen steuern (Vermutlich - denn es ist ungetestet, weil ich keine habe )
Beispiel:
fb_tools fritz.box smarthome down 098760054321
fb_tools fritz.box smarthome stop 098760054321
fb_tools fritz.box smarthome up 098760054321
test [ain:Aktor]
Mit diesen Befehl läßt sich der aktuelle Schaltzustand eines Aktors abfragen.
Als Parameter ain
wird eine eindeutige Aktor-ID erwartet, die eine AIN, ID oder der Name sein kann. (AIN und ID können OHNE Leerzeichen angegeben werden!)
Beispiel:
fb_tools fritz.box smarthome test 23
set [ain:Aktor] [hkr|kelvin|dimm|hsv|color]
Argument | Inhalt | Beschreibung |
hkr: | 8.0-28.0 | an | aus | komfort | spar | Temperatur vom Heizkörperregler setzen[1] |
kelvin: | 2700-6500 | Farbtemperatur von der Lampe in Kelvin setzen[2,3] |
dimm: | 0-100 | Helligkeit der Lampe in Prozent setzen |
hsv: | 0-359,0-100,0-100 | Farbwinkel, Farbsättigung und Helligkeit von der Lampe setzen[2] |
color: | Farbname 1-3 | Farbname mit Sättigungsnummer[2,3] |
ain: | Template | Aktor nach Vorgaben setzen |
(1) Temperatur auf 0.5° genau setzen (Änderungen dauern bis zu 15 Minuten) (2) Akzeptiert z.Z. nur Vorgabewerte - Alternativ [color] nutzen (3) Verfügbare Farbnamen mit [func:info] abfragen |
Hiermit kann man eine Lampe oder einen Heizkörperregler einen Wert zuweisen.
Bei einen
Der Parameter hkr
ist für den Heizkörperregler gedacht. Mit den Werten komfort
und spar
lassen sich die in der Fritz!Box eingestellten Werte einstellen.
Ansonsten wird der Wert als soll Temperatur gesetzt.
Ab fb_Tools 0.32 kann der Befehl set auch Vorgaben für einen Aktor setzen
Die Parameter kelvin
, dimm
, hsv
und color
sind für die Farblampe gedacht.
[kelvin], [hsv] und [color] akzeptieren nur Vorgabewerte, die man mit [func:info] abfragen kann.
Als Parameter ain
wird eine eindeutige Aktor-ID erwartet, die eine AIN, ID oder der Name sein kann. (AIN und ID können OHNE Leerzeichen angegeben werden!)
Beispiel:
fb_tools fritz.box smarthome set 16 20
fb_tools fritz.box smarthome set 098760054321 spar
fb_tools fritz.box smarthome set 2000 color:kalt2
fb_tools fritz.box smarthome set 2000 kelvin:4200
Sonder Funktionen:
Info <func|Datei>
Die Info-Funktion ist eine Interne Funktion und benötigt keine Fritz!Box. Man kann einige nützliche Informationen ausgeben lassen und kleine Tests durchführen.
Ohne weitere Parameter wird die aktuelle Version von fb_Tools ausgeben, sowie die verwendete PHP-Version.
Arg <arg>
Alle geparsten Argumente ausgeben (Benannte und unbenannte Argumente - Teilweise mit Regex-Ergebnisse)
Beispiel:
fb_tools info arg foo foo:bar
Echo <str:String>
Wenn es Probleme mit den Parametern gibt, kann es hilfreich sein, zu überprüfen, ob die Parameter Fehlerfrei an fb_Tools übergeben wurden.
Beispiel:
fb_tools info echo *.php $$$$Geheim 'D4$ 1$7 31n 73$7*,;%'
eXtrakt [Datei] <Verzeichnis>
Listet kleine TAR/ZIP-Archive auf und kann auch sämtliche Dateien daraus entpacken. (Bedenken sie, dass das Archiv intern komplett entpackt wird und somit keine großen Archive bearbeitet werden können.) Mit der Option -pa:[TAR|ZIP]
kann man festlegen was es für ein Archiv ist, wenn es nicht die Dateierweiterung aussagt. Handelt es sich um ein Kennwortgeschützes ZIP-Archiv, dann kann mit der Option -zp:[Kennwort]
das Kennwort übergeben.
Hash <Datei|String>
Geben Sie als Parameter eine Datei an, wird von dieser Datei mehrere Checksummen (CRC32, MD5, SHA1, SHA256 und SHA512) erstellt. Ansonsten wird es als String betrachtet und davon die Checksummen berechnet.
Beispiel:
fb_tools info hash konfig.export
JSON [Datei]
Mit dem Internen JSON-Parser können beliebige JSON-Dateien lesbar angezeigt werden.
Beispiel:
fb_tools info json .sndb.json.gz
OTPauth <Geheimnis|Datei>
Die Zwei-Faktor-Authentisierung der Fritz!Box kann ab Fritz!OS 7 mit einen sechs stelligen Token durchgeführt werden.
Dazu wird das 160 Bit Geheimnis (Der Code ist entweder zusammen geschrieben oder in 8 Blöcken zu je 4 Zeichen unterteilt) benötigt, das die Fritz!Box bei der Erstellung für den Google_Authenticator generiert hat.
Von den zwei Möglichkeiten können Sie sich eine aussuchen:
- Der 32-Zeichen langer Code, der als Fallback mit den QR-Code mit angeboten wird, für Fall, dass man keine Kamera im Smartphone hat
- Aus der entschlüsselten Export-Datei sucht man die Variable "googleauth_sharedsecret" heraus und übernimmt den 32-Zeichen langen Code
Entweder wird PHP in der Version 5.1.2+ oder es wird die Bibliothek hashtool.php
in den libs-Ordner benötigt.
Es gibt nun vier Möglichkeiten fb_Tools das Geheimnis zu übermitteln:
- Direkt mit den Parameter
secret
Beispiel: fb_tools info otpauth secret:"ABCDEFGHIJKLMNOPQRSTUVWXYZ234567"
- Direkt über die Option
-tf
Beispiel: fb_tools info otpauth -tf:"ABCDEFGHIJKLMNOPQRSTUVWXYZ234567"
- In der Datei
fb_config.php
und den ersten Parameter für die Fritz!Box
Beispiel für die fb_config.php:
$cfg['preset'] = array('meinebox' => array('pass' => 'admin123', 'host' => 'fritz.box', 'iupw' => 'ABCD EFGH IJKL MNOP QRST UVWX YZ23 4567'));
Beispiel für den aufruf: fb_tools meinebox info otpauth
- Das Geheimnis wird direkt in einer Datei geschrieben und an fb_Tools mit
file
übergeben.
Beispiel: fb_tools info otpauth file:"Z:/otp.txt"
Zusätzlich gibt es noch drei Optionen:
- -ft:[strftime] - Kann zusammen mit Option
-rp
verwenden, um ein eigenes Datum-Format zu erzeugen
- -rp:[count] - Erzeugt die angegebene Anzahl von Tokens, die zusammen mit Datum/Uhrzeit ausgegeben werden, wann diese Gültig sind.
- -ts:[time] - Mit der Option
-ts
kann man Datum/Uhrzeit angeben, zu wann der Token gültig sein soll. (Vorzugsweise im Format: YYYY-MM-DD HH:MM:SS)
Beispiel: fb_tools meinebox info otpauth -ts:'2024-03-28 18:57:14'
StrfTime <str:String> <time>
Dient um zu überprüfen, welche Datumsformate vom Betriebssystem unterstützt werden. Wird nichts als String angegeben, werden alle ausgegeben.
Beispiel:
fb_tools info strftime
fb_tools info strftime str:"%d.%m.%y %H:%M:%S" time:@1234567890
Update <opt:check> <-f>
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 die Option -f
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.
Extension
Gibt alle externen Bibliotheken aus, die von fb_Tools gefunden/nachgeladen wurden
OpenSSL
Prüft ob OpenSSL vorhanden ist und damit HTTPS möglich ist
Nicht alle Info-Funktionen sind hier Dokumentiert... - Einfach mal fb_tools info -h
aufrufen
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 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.json
call fb_tools.bat ereignisse file:internet-%y%m.log filter:internet -s:sid.json
call fb_tools.bat ereignisse file:telefon-%y%m.log filter:telefon -s:sid.json
call fb_tools.bat ereignisse file:wlan-%y%m.log filter:wlan -s:sid.json
call fb_tools.bat ereignisse file:usb-%y%m.log filter:usb -s:sid.json
call fb_tools.bat ereignisse file:system-%y%m.log filter:system -s:sid.json
call fb_tools.bat logout -s:sid.json
Plugin [plug:Plugin-Datei] <...> oder [Check|Install|List|Update]
# md5_summer 06.01.2024 16:39:24 (fbt_plugins.tgz)
d4d378d9d37715c5f9a652037c50d2a5 0.02 *fbtp_2fa.php
6514856ed1115ca681a2ff3ff54c52cd 0.03 *fbtp_callmonitor.php
13b730777005b517ee6e8f88dc4ea133 0.01 *fbtp_dsl-resync.php
28099808389a8752a0dc975147c977af 0.02 *fbtp_fbdata.php
4c77ded1d2263674b2e0f007f367976e 0.01 *fbtp_juis-update.php
9fa704fe4367bbb7f18b4c458e5f703f 0.32 *fbtp_konfigdecrypt.php
fd9c24f1cabcec5df7416c8b20d7c4ec 0.05 *fbtp_konfighacker.php
e30ab57a6d903c3669ebb54559f42aeb 0.01 *fbtp_konfigpatcher.php
3482e4ce16af88703afb075080605327 0.10 *fbtp_laborsync.php
1bd7e773dd24a467a89c430331617d22 0.04 *fbtp_manualsync.php
fd2b71bff923cc291c39b3a895aec73e 0.04 *fbtp_neustart.php
1fb9a4ac2981a9aa0156a483ef80d672 0.01 *fbtp_serial.php
624e50eb3c8da6cb1dcc376612bd3ac2 0.05 *fbtp_sqldb.php
be42020e4b4e52c456454a94c03bb79e 0.03 *fbtp_telefonbuch.php
aecc986e4a8e41cb7b272a3e98b11e16 0.00 *fbtp_test.php
07626dedd42521df683cae94f220efe2 0.10 *fbtp_websync.php
Mit der Plugin-Schnittstelle 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.
fb_Tools sucht Plugins zuerst in den Ordner plugins
im aktuellen Verzeichnis. Alternativ nur im aktuellen Verzeichnis. Anschließend das ganze nochmal im Script-Verzeichnis.
Man kann auch ein vollständigen Pfad mit Dateinamen zur Plugin-Datei angeben, um das Plugin zu starten. (Dazu ist die mode:plugin
Angabe erforderlich!)
Als Alternative dazu gibt auch eine Option -pp:<Plugin-Path>
, wo man das genaue Verzeichnis angeben kann, wo die Plugins liegen oder installiert werden sollen.
Im Archiv fb_tools.7z liegen einige Plugins mit dabei. Diese können ab fb_Tools 0.25 OHNE das Mode-Argument plugin
aufgerufen werden.
Beispiel:
fb_tools plugin
fb_tools fritz.box plugin konfigdecrypt export
fb_tools fritz.box konfigdecrypt export
fb_tools plugin c:/Users/Max/Desktop/fbtp_test.php args
fb_tools test args -pp:/media/USB-Stick/plugins
Die Plugins können unabhängig von fb_Tools über das Internet mit plugin install
Installiert oder plugin update
Aktualisiert werden.
Mit der Option -ow
wird das alte Plugin mit dem Update überschrieben und keine Sicherheitskopie angelegt. Die Option -f
ignoriert sämtliche Fehler.
Beispiel:
fb_tools plugin list
fb_tools plugin check
fb_tools plugin update -ow
fb_tools plugin install
WARNUNG: Achten Sie darauf, welche Scripte Sie einbinden - Es gibt KEINE Prüfung auf Malware oder Schadsoftware!!!
fbtp_2fa.php [func]
Ab Fritz!OS 7.39+ kann man die Zwei-Faktor-Authentisierung ohne Neustart an und ausschalten. Für eine Prüfung darauf sind keine Logindaten erforderlich.
Abgesehen von den Fritz!Box-Anmeldedaten benötigt das Plugin nur einen Parameter func
:
Funktionen (Func):
- on / an - Schaltet die Zwei-Faktor-Authentisierung an (Für die aktiviertung ist kein Zweiter Faktor erforderlich)
- off / aus - Schaltet die Zwei-Faktor-Authentisierung ab (Für die deaktiviertung ist ein Zweiter Faktor zwingend erforderlich)
- test - Prüft auf eine Zwei-Faktor-Authentisierung (Für die Prüfung sind keine Logindaten erforderlich)
Beispiel:
fb_tools fritz.box 2fa aus
fb_tools 2fa test
fbtp_callmonitor.php <Logdatei> <fritz.box> <timeout>
Diese kleine Erweiterung läuft auch OHNE fb_Tools und überwacht den Port 1012. (Dieser Port muss zuvor mit #96*5*
aktiviert werden)
Alle externen Anrufe werden in Echtzeit erfasst und Protokolliert.
Beendet wird die Erweiterung mit CTRL-C.
Beispiel:
fb_tools callmonitor calls.log
php plugins/fbtp_callmonitor.php calls.log
fbtp_fbdata.php [level] <save>
Mit dieser Erweiterung kann alle Informationen aus einer Fritz!Box heraus exportieren. Die Exportieren Daten werden nicht verändert oder sonst wie Interpretiert.
Mit dem ersten Parameter level
wird der Export in drei unterschiedlichen Ebenen Unterteilt:
- Level 1: Alle Informationen, die man vom Heimnetz aus, ohne Zugangsdaten erhalten kann.
- Level 2: Alle Informationen, die mit Zugangsdaten erhält.
- Level 3: Alle Informationen, die mit Zugangsdaten UND Zwei-Faktor-Authentisierung erhält. (Also Absolut alles)
Mit dem Parameter save
können sie ein Verzeichnis Angeben, wohin die Exportieren Daten geschrieben werden sollen. Es ist auch Erlaubt ein TAR oder ein ZIP-Archiv anzugeben.
Beispiel:
fb_tools fritz.box fbdata level:3 save:fb_data.zip
fbtp_juis-update.php [func] <file:juis_boxinfo.xml|name:fritzbox> <dir:Verzeichnis> <xml:Datei>
Diese Erweiterung kann nach Updates für die eigene oder mit einer Datenbank nach einer beliebigen Fritz!Box suchen.
Funktionen (Func):
- Check - Prüft nach Updates
- Download - Prüft nach Updates und lädt die nächste Update-Datei herunter
Beispiel:
fb_tools fritz.box juis-update check
fb_tools fritz.box juis-update download dir:/fritzbox-firmware
Alternativ kann man eine XML-Datei benutzen, wovon der Update-Check gemacht werden soll. Die Datei erhalten sie entweder mit dem Parameter xml
oder manuell mit http://fritz.box/juis_boxinfo.xml
.
Beispiel:
fb_tools juis-update check file:juis_boxinfo.xml
Suche nach Updates von "Fiktiven Fritz!Boxen" aus einer Datenbank.
Mit dem Parameter name
ist Möglich, nach Updates von Fritz!Boxen zu suchen, die man gar nicht besitzt. Dazu wird eine Datenbank benötigt, die man beim ersten Aufruf mit der Optionsangabe -up
herunterladen und lokal speichern kann. Es reicht völlig die Datenbank Jährlich zur aktualisieren, da AVM nicht ständig neue Modelle auf dem Markt bringt.
Beispiel:
fb_tools juis-update check name:'Fritz!Box 7590 AX' -up
- Beim allerersten Aufruf mit dem Parameter name
fb_tools juis-update check name:'1200ax'
- Für weitere Aufrufe
Optionen
- -bt:[kanal] - Update-Kanal ändern
Die Option für Update-Kanal können sie auf: normal, release, inhouse, labor, phone, test oder plus ändern, womit sie teilweise unfertige Firmware-Images bekommen.
- -fw:[Version] - Firmware-Version
Im Zusammenspiel mit dem Parameter name
, kann man für die gesuchte Fritz!Box eine Firmware-Version festlegen. Besonders wenn sie nach internen Inhouse-Versionen suchen, ist das Suchergebnis abhängig von der "vorhandenen" Firmware.
- -pv - Privat-Modus
Bei der Firmware-Update Prüfung werden viele eindeutige Merkmale ihrer Fritz!Box an AVM geschickt. Um das zu verhindern, setzen sie einfach die Option -pv
. Damit wird ihre Fritz!Box anonymisiert.
- -rd:<dir> - Speicher RAW-Daten bei der Update-Abfrage
Falls die selbst, die Daten untersuchen möchten, die AVM zurückschickt, können die mit der Option die RAW-Daten speichern lassen.
- -sn:[file] - Speicherort der Datenbank
Die Datenbank, die für den Parameter name
benötigt wird, wird Standardmäßig im Plugin-Ordner gespeichert. Mit der Option können sie einen eigenen Ort festlegen, der bei jedem Aufruf mit angegeben werden muss.
- -up - Datenbank herunterladen bzw. Datenbank aktualisieren
Die Datenbank ist eine mit GZip gepackte JSON-Datei, wo alle wichtigen Daten zu den Fritz!Box-Modellen enthalten sind.
Beispiele:
fb_tools fritz.box juis-update check -bt:inhouse
fb_tools fritz.box juis-update check -pv
fb_tools fritz.box juis-update check -rd:debug
fb_tools fritz.box juis-update download -sn:./.sndb.json.gz -up
fbtp_konfigdecrypt.php [ExPort|ExTrakt|File] <if/of:Datei/Ordner> <pass:Kennwort> <of:Datei> (End of Service)
Die Entschlüsselungsfunktion für die Konfig-Dateien aus fb_Tools 0.13-0.22 wurde als Plugin ausgelagert.
Für die Entschlüsselung wird eine Fritz!Box mit Fritz!OS 5 - 7 benötigt. (Provider Fritz!Boxen spielen dabei nicht mit!)
Man kann die Konfig entschlüsselt exportieren mit:
fb_tools fritz.box konfigdecrypt export of:fb.export
oder entschlüsselt aufsplitten mit:
fb_tools fritz.box konfigdecrypt extrakt of:export
Dann kann noch eine separate Konfig-Datei mit:
fb_tools fritz.box konfigdecrypt file if:fb.export pass:geheim of:fb_decrypt.export
entschlüsselt werden.
Hinweise:
- Es wird Empfohlen VOR entschlüsseln den Push-Dienst zu deaktivieren, da es sonst unnötig lange dauert und man von seiner eigenen Fritz!Box währenddessen zugespamt wird...
- KonfigDecrypt wird in Zukunft nur noch an die aktuelle fb_Tools-Version angepasst, NICHT mehr an die aktuelle Fritz!OS-Version!
fbtp_konfighacker.php [crypt] <pass> <mac> <serial>
Mit KonfigHacker können Sie alte Konfig-Dateien, die OHNE Kennwort gespeichert wurden, die MAC-Adresse zum Entschlüsseln per Brute-Force herausfinden. Auch eine Kennwortgeschütze Konfig-Datei, kann mit einer Passwortliste durchprobiert werden.
Auch wenn es nur ein PHP-Script ist, dass nur mit einen Threat läuft, ist es relativ effizient:
- Ein Raspberry Pi 1 kommt auf 8000 Versuche pro Sekunde
- Ein Raspberry Pi 4 schon auf 128.000 Versuche pro Sekunde
- Ein moderner PC schafft ca. 1.000.000 Versuche pro Sekunde
Theoretisch müssten alle 248 Möglichkeiten durchprobiert werden. Da es ein System in der Vergabe der MAC-Adressen gibt, reduziert sich das auf maximal 31*224.
Der Pflicht-Parameter benötigt den ersten Verschlüsselten Wert aus der Konfig-Datei, dass ohne Kennwort gespeichert wurde. (Password=$$$$ABC...456
)
Mit dem ersten Optionalen Parameter kann man eine Kennwort-Datei angeben, die der Reihe nach durchprobiert werden.
Damit kann man auch Kennwort geschützte Konfig-Dateien durchprobieren.
Wurde das Konfig-Kennwort gefunden, wird es ausgegeben. Handelt es sich um eine MAC-Adresse kann Konfig-Datei mit:
fb_tools konfig file-decrypt [if:Datei] [pass:MAC-Adresse]
entschlüsselt werden.
Mit dem Parameter pass:[filename | password]
kann man auch ganze Kennwortlisten (Optional mit gzip/bzip2 gepackt) angeben, die nacheinander durchprobiert werden.
fb_tools konfighacker crypt:MBJNDHVVEYCNUZ1VEXGQSJITJAYSMSY6WHLMN2HNYRCJXXUAUGK6OUFECCPD1HNM1HK5AEVLMZV4QHPZNYOEVMJAFTALSFWGXFG41IYA pass:./passwords.txt
Es sollte KLAR sein, dass man nur seine eigene Konfig-Dateien knacken darf.
fbtp_konfigpatcher.php [patch] <cmd> <set> <file> <save>
Patches (patch) | Parameter | Beschreibung |
Base2Bin | | Convertiert Base64 Container in Binaer |
Bin2Base | | Convertiert Binaer Container in Base64 |
GUI-Protect | cmd: on | off | (Ent)sperrt Konfigbereiche der Fritz!Box |
LED | cmd: on | off | Schaltet die LED-Leuchten an oder aus |
TwoFactor | cmd: on | off | (De)aktiviert die Zwei-Faktor-Authentisierung |
VoIP-Protect | cmd: on | off | (Ent)sperrt die VoIP-Einstellungen der Fritz!Box |
WLANMAC-Override | set: mac | Überschreibt die WAN-MAC-Adresse mit einer beliebigen anderen MAC-Adresse |
Das Plugin ermöglicht die Fritz!Box-Konfiguration mit einem Patch zu verändern. Es gibt drei Arten von Vorgegebenen Patches:
- Daten zu Konvertieren - Diese Patches kommen ohne weitere Parameter aus.
- Funktionen de- oder aktivieren - Hierbei wird der Parameter
cmd
hinzugezogen, wo der nur on/off oder an/aus akzeptiert.
- Einen bestimmt Wert festlegen - der in dem Parameter
set
übergeben wird.
Die Konfiguration wird direkt aus der Fritz!Box ausgelesen und nach dem Patchen wieder zurück geschrieben. Nach dem folgenden Neustart sollten die Modifikationen wirksam sein.
Mit dem Parameter file
und save
kann man die Konfigurationsdateien direkt Patchen.
Beispiele:
fb_tools fritz.box mode:konfigpatcher patch:led do:off
fb_tools konfigpatcher voip off file:konfig.export save:konfig_patch.export
fb_tools fritz.box patcher base2bin
fbtp_laborsync.php [dir:Lokal-Dir] <Option>
Aktuelle Labor Firmware-Images können Sie mit diesen Plugin automatisiert vom AVM-Server herunterladen.
(Beachten Sie, dass für die https-Verbindungen mit dem AVM-Server die neuste OPENSSL-Version brauchen.)
Als einziger Parameter wird ein Verzeichnis verlangt, wo die Firmware-Dateien gespeichert werden sollen.
Zusätzlich gibt einige neue Optionen, die das Verhalten beeinflussen:
- -dl:[Sekunden]
Wartezeit zwischen zwei Downloads
- -f
Es werden mögliche Fehler ignoriert.
- -fd:[Datei]
Erstellt zu den durchgeführten Downloads eine Datei-Liste mit den Vollen Download-Urls.
- -fl:[Datei]
Keine Firmware-Images herunterladen, sondern nur eine Download-Liste erstellen
- -fp:[Pattern]
Es werden nur die Firmware-Dateien heruntergeladen, die auf dem Pattern passen.
- -md:<Datei>
Wird keine Datei angegeben, werden gelöschte Dateien auf dem AVM-Server Lokal mit _DEL markiert bzw. umbenannt. Wird eine Datei angegeben, dann wird nur eine Liste den gelöschten Dateien erstellt.
- -ow
Alte Labor-Dateien werden mit neuen überschrieben.
Beispiel:
fb_tools laborsync ./labor/
fbtp_manualsync.php [dir:Lokal-Dir] <group> <lang>
lang | Land |
be | België |
befr | Belgique |
en | English |
es | España |
it | Italia |
lufr | Luxembourg |
lu | Luxemburg |
nl | Nederland |
pl | Polska |
at | Österreich |
ch | Schweiz |
chfr | Suisse |
Aktuelle PDF-Anleitungen können mit diesen Plugin vom AVM-Server heruntergeladen werden.
(Beachten Sie, dass für die https-Verbindungen mit dem AVM-Server die neuste OPENSSL-Version brauchen.)
Mit dem Parameter dir
wird ein lokales Verzeichnis angegeben.
Der Parameter group
filtert die PDF-Anleitungen nach der Gruppe.
Wird keine Gruppe angegeben, wird nichts gefiltert.
Folgende Gruppen sind möglich: Box, Fon, WLAN, PowerLine, DECT, Additional und Schnittstellen.
Zusätzlich ist Möglich mit dem Parameter lang
die gewünschte Sprache auszuwählen, wenn es nicht Deutsch sein soll. (In der rechten Tabelle finden Sie die unterstützten Sprachen)
Des weiteren gibt einige Optionen, die das Verhalten beeinflussen:
- -dl:[Sekunden]
Wartezeit zwischen zwei Downloads
- -dt:[Sekunden]
Definiert die erlaubt Differenzzeit zwischen Ihren PC und dem AVM-Server. Erst wenn die überschritten wird, wird die PDF-Datei als neu erachtet.
- -f
Es werden mögliche Fehler ignoriert.
- -fd:[Datei]
Erstellt zu den durchgeführten Downloads eine Datei-Liste mit den Vollen Download-Urls.
- -fl:[Datei]
Keine PDF-Anleitung herunterladen, sondern nur eine Download-Liste erstellen
- -fp:[Pattern]
Es werden nur die PDF-Anleitungen heruntergeladen, die auf dem Pattern passen.
- -md:<Datei>
Wird keine Datei angegeben, werden gelöschte Dateien auf dem AVM-Server Lokal mit _DEL markiert bzw. umbenannt. Wird eine Datei angegeben, dann wird nur eine Liste den gelöschten Dateien erstellt.
- -ow
Alte Labor-Dateien werden mit neuen überschrieben.
- -st:[Strftime]
Doppelte PDF-Anleitungen werden mit Strftime umbenannt
Beispiele:
fb_tools manualsync . -fl
fb_tools manualsync ./pdf/ group:schnittstellen
fbtp_neustart.php
Startet die Fritz!Box über Weboberfläche neu. Abgesehen von den Anmeldedaten der Fritz!Box benötigt dieses Plugin keine weiteren Parameter.
Beispiel:
fb_tools fritz.box neustart
fbtp_serial.php [func|file|serial|version]
Mit diesem Plugin können sie bei neuen Fritz!Boxen (ab der 5. Generation [x5xx]) die Seriennummer direkt aus der Fritz!Box auslesen und mit Hilfe einer Datenbank entschlüsseln lassen. Bei älteren Fritz!Boxen muss die Seriennummer Manuell mit dem Parameter <serial> angeben.
Für dieses Plugin sind von der Seriennummer (C213.348.00.123.456) nur die ersten beiden Werte vom nutzen. (Baudatum & Modell) Der Rest kann weggelassen werden. Die Seriennummer kann direkt mit dem Parameter <serial> angegeben werden.
Beispiel:
Mit dem Parameter func:import
können sie die Seriennummer von fb_Tools aus der Fritz!Box auslesen lassen, sofern sich diese auslesen lässt. Handelt es sich um eine ältere Fritz!Box dann wird nur die Firmware-Nummer ermittelt und die Berechnung des Baudatums weggelassen.
Beispiel:
fb_tools fritz.box serial import
Mit dem Parameter file
können sie das ZIP-Archiv aus der Fritz!Box (System/Sicherung / Telefonie-Daten sichern) direkt zum Analysieren dem Plugin vorlegen. Dies ist mit "import" nahezu identisch.
Beispiel:
fb_tools serial file:FRITZ.Box.assets.zip
Datenbank: .sndb.json.gz
Für die genaue Berechnung des Baudatums aus der Seriennummer, wird eine Datenbank benötigt, wo alle Hardware-Nummern gespeichert sind. Diese Datenbank kann mit der Option -up
heruntergeladen/aktualisiert werden und wird im Plugin-Ordner von fb_Tools gespeichert. Beim ersten Aufruf muss die Option -up
angegeben werden. Die Datenbank muss nur bei der Meldung aktualisiert werden: "Keinen Eintrag für Hardware-ID xxx gefunden". Da ihre Hardware bzw. ihre Hardware-ID noch nicht erfasst wurde.
Beispiel:
fb_tools fritz.box serial import -up
Folgende Optionen stehen noch zur Verfügung:
- -rd:<dir> - Speicher RAW-Daten bei der Update-Abfrage
Falls die selbst, die Daten untersuchen möchten, die AVM zurückschickt, können die mit der Option die RAW-Daten speichern lassen.
- -sn:[file] - Speicherort der Datenbank
Die Datenbank, die für den Parameter <name> benötigt wird, wird Standardmäßig im Plugin-Ordner gespeichert. Mit der Option können sie einen eigenen Ort festlegen, der bei jedem Aufruf mit angegeben werden muss.
- -up - Datenbank herunterladen bzw. Datenbank aktualisieren
Die Datenbank ist eine mit GZip gepackte JSON-Datei, wo alle wichtigen Daten zu den Fritz!Box-Modellen enthalten sind.
Weitere Beispiele:
fb_tools serial version:84.06.88
fb_tools fritz.box serial import -rd:debug
fb_tools fritz.box serial import -sn:./.sndb.json.gz -up
fbtp_sqldb.php [func] [mysql|sqlite|preset] <query|sql> <file>
Liest aus der Fritz!Box die Anrufliste, Ereignisse oder den Traffic-Zähler aus und schreibt diese in eine MySQL oder SQLite Datenbank.
Dieses Plugin richtet sich demnach an diejenigen, die wissen was eine Datenbank ist und wie man die Datenbank administriert.
Unterstützt werden die Datenbanken MySQL 4.1+ und SQLite 3.8+ mit den entsprechenden Erweiterungen: mysqli und sqlite3.
Wer noch nie mit Datenbanken gearbeitet hat, sollte von MySQL vorerst die Finger lassen. SQLite ist für Anfänger gut geeignet. (Eine Datenbankdatei ohne Benutzer oder Zugriffsverwaltung).
Weitere Datenbanken sind bislang noch nicht geplant. Die SQL-Anweisungen im Quelltext sind Augenscheinlich für SQLite geschrieben, werden falls erforderlich, mit Regulären Ausdrücken für MySQL umgewandelt.
Bei dem Design der Tabellen habe ich einen Kompromiss zwischen Einfach und Redundanz arm getroffen. d.H. Es gibt alle Funktionen eine Haupttabelle und eine für zusätzliche Daten. Alle Daten können jederzeit Export und Import werden. (Falls sich das Datenbankschema mal ändern sollte)
Um mit PHP auf eine Datenbank zugreifen können, werden die PHP-Erweiterungen: mysqli und/oder sqlite3 benötigt.
- Windows-Nutzer können entweder die aus den PHP-Original-Archiv oder aus der WebPHP-Variante von meinen Projekt: PHPBatch entnehmen. (php_mysqli.dll und php_sqlite3.dll)
- Linux-Nutzer installieren einfach die Pakete php-mysqli und php-sqlite3 nach. Ich Empfehle zusätzlich noch den sqlitebrowser nach zu installieren, da man damit die Datenbank gut einsehen kann.
- MacOS-User müssen vermutlich nichts weiter tun - wenn doch, kann mir jemand das gerne mitteilen
Mit fb_tools info extension
kann man testen, ob die PHP-Erweiterungen korrekt installiert sind.
$cfg['plugin']['sqldb']['preset'] = array(
'mydb' => array(
'type' => 'mysqli',
'host' => 'localhost',
'port' => 3306,
'user' => 'root',
'pass' => '12345',
'base' => 'fb_tools'
),
'lite' => array(
'type' => 'sqlite3',
'file' => 'pfad/sqlite.db')
);
Beispiel für fb_config.php
|
Für den Zugriff auf die Datenbank gibt es drei mögliche Argumente:
[mysql:'username:password@mysql-server:port/database']
- Für Zugriff auf MySQL-Datenbanken
[sqlite:'pfad/dateiname']
- Für Zugriff auf eine Lokale SQLite3-Datenbank
[preset:name]
- Datenbank aus der fb_config.php auswählen (Siehe Rechts)
Als aller erstes muss man die Tabellen anlegen.
- Bei MySQL sollte man dazu vorher eine Unterdatenbank und einen Benutzer mit entsprechenden Rechten anlegen.
- Für SQLite gibt nichts weiter zu beachten. Einfach nur eine nicht existiere Datei angeben.
fb_tools wird dann mit der Datenbank zusammen mit init
aufrufen.
Beispiel:
fb_tools sqldb mysql:'user:pass@localhost:3306/fb_tools' init
fb_tools sqldb sqlite:'./meinebox.db' init
Speziell für init gibt einige Optionen: -dt, -f, -it (Siehe Optionen - weiter unten)
Die Optionen -pf und -pm müssen entweder immer wieder angegeben werden oder können auch in fb_config.php hinterlegt werden.
Funktionen (func) | Beschreibung |
Call | AnrufListe | Anrufliste der Fritz!Box mit Datenbank abgleichen[1] |
Call-Export <file> | Datenbank-Export der Anrufliste als CSV-Datei[2,3] |
Call-Import [file] | Datenbank-Import der Anrufliste von einer CSV-Datei[2,3,4] |
Event | Ereignisse | Ereignisse der Fritz!Box mit Datenbank abgleichen[1] |
Event-Export <file> | Datenbank-Export der Ereignisse als CSV-Datei[2,3] |
Event-Import [file] | Datenbank-Import der Ereignisse von einer CSV-Datei[2,3,4] |
Traffic | Verkehr | Daten-Zähler der Fritz!Box mit Datenbank abgleichen[1] |
Traffic-Export <file> | Datenbank-Export der Daten-Zähler als CSV-Datei[2,3] |
Traffic-Import [file] | Datenbank-Import der Daten-Zähler von einer CSV-Datei[2,3,4] |
Init | Tabellen für die Anrufliste, Ereignisse und Traffic erstellen[2] |
Query | Abfrage [sql] <file> | Eigene Datenbank-Abfragen durchführen[2,3] |
Query [query] <file> | Vorgefertigte Datenbank-Abfragen durchführen[2,3] |
(1) Fritz!Box Anmeldung erforderlich (3) GZip/BZip2-Unterstützung (2) Ohne Fritz!Box nutzbar (4) Verzeichnis mit mehreren Dateien |
Die Funktionen in SQLDB sind in drei Gruppen aufgeteilt, die wiederum in drei Gruppen aufgeteilt sind:
- Einmal die Art der Daten: Anrufliste, Ereignisse und Verkehr. Die Deutschen Namen sind keine Pflicht. Möglich sind auch call, event und traffic (Intern werden nur die Englischen Namen verwendet, da auch die Tabellen so heißen.)
- Und dann die Richtung der Daten: Aus der Fritz!Box, Import und Export.
Bei Export werden die Daten in einer CSV-Datei umgewandelt, so als ob sie aus der Fritz!Box gekommen wären. Die Datei kann mit GZip/BZip2 komprimiert oder als komprimierte Datei gelesen werden. Wird beim Export KEINE Datei angegeben, wird eine Tabelle auf den Bildschirm erzeugt und auf 100 Einträge reduziert. (Bei Zu vielen Daten bricht fb_Tools in sich zusammen)
Beim Import ist eine Verzeichnis-Angabe und das Wildcard-Zeichen *
im Dateinamen erlaubt. - So können die ganze Anruflisten aus den Push-Dienst in einen Ordner gepackt werden und importiert werden.
Soll die Datenbank von der Fritz!Box gefüttert werden, sind natürlich noch Zugangsdaten der Fritz!Box erforderlich. (Die fb_config.php lässt grüßen )
Das ganze "schreit" nach einen Cron-Dienst.
Ich empfehle die Anruflisten und die Ereignisse Stündlich abzurufen. Die Traffic-Daten müssen nur Täglich abgerufen werden.
Das Plugin kann immer nur einen Abgleich durchführen. - Alles auf einmal ist leider NICHT möglich.
Zusätzlich gibt es Vorgefertigte Datenbank-Abfragen die mit [query:name] angegeben werden können.
Eine vollständige liste erhalten Sie mit fb_tools sqldb [Datenbank] query
Hinweis: Die Vorgefertigten Datenbank-Abfragen verhalten sich teilweise je nach Datenbank und PHP-Version unterschiedlich. - Da es nur Abfragen sind, halten sich meine Prioritäten diesbezüglich in Grenzen...
Alternativ können auch eigene Abfragen durchführen - Ich Empfehle es direkt über die Datenbank zu machen und nicht über fb_tools. (WICHTIG: IMMER ein Limit setzen!)
Beispiel:
fb_tools sqldb preset:lite query sql:'select * from [sqlite_master] limit 100'
Zusätzlich gibt einige Optionen, die das Verhalten beeinflussen:
- -ch
Erzeugt beim Export einen CSV-Header mit Separator-Angabe vor den Daten.
- -cp:[ansi|utf8]
Zeichensatz der Datenbank-Tabelle. Standard ist UTF-8
- -cs:[Seperator]
Einen eigenen CSV-Separator festlegen. Standard ist ;
- -dt
Führt bei init VOR "Create Table" ein "Drop Table" aus. Alle Daten, die den Tabellen gehen dabei VERLOREN!
- -f
Sämtliche Fehler bei init ignorieren.
- -ft:[strftime]
Bei Export können Sie hier ein eigenes Datum-Format für die Ausgabe angeben, dass mit strftime geparst wird.
Dabei sind gleich drei Eingaben erlaubt. -ft:'%Y-%m-%d %H:%M:%S'
oder -ft[,]:'%Y-%m-%d %H:%M:%S','%Y-%m-%d','%H:%M:%S'
- -it:[Name]
Legt bei init nur die angegebene Tabelle an. Mögliche Namen sind call, event und traffic
- -lm:[limit]
Legt bei der Konsolen-Ausgabe die maximalen Einträge fest. (Werte über 1000 sind nicht sinnvoll!)
- -mu:[String]
Bei den Vorgabe-Abfragen kann man das Ergebnis nach Mesh-Gerät filtern.
- -nl
Statt leerer Zellen wird "NULL" ausgeben. Falls man leeren Zellen mit NULL unterscheiden möchte.
- -rj:<Regex>
Bei der Konsolen-Ausgabe werden Zahlen rechtsbündig in den Zellen angeordnet. Mit dem Regulären Ausdruck können sie das verhalten selber bestimmen. (Geben Sie keinen Ausdruck an, werden Zahlen ebenfalls Linksbündig angeordnet)
- -pf:[String]
Legt ein Präfix vor allen Datenbank-Tabellen. Also bei -pf:'fb_'
wird aus call
und call_text
ein fb_call
und fb_call_text
. Sinnvoll, wenn man keine eigene Unterdatenbank erstellen kann.
- -pm:[String]
Legt ein Präfix vor der Haupt-Tabelle. Also bei -pm:'mayer_'
wird aus call
und call_text
ein mayer_call
und call_text
. Sinnvoll, wenn man mehrere Fritz!Boxen in einer Datenbank führen möchte.
fbtp_telefonbuch.php [func:list|export] <buch|save>
Zeigt ein Telefonbuch an, das mit dem Parameter buch
übergeben wurde.
Oder exportiert sämtliche Telefonbücher aus der Fritz!Box in das Archiv/Verzeichnis, das mit dem Parameter übergeben save
wurde.
Beispiele:
fb_tools fritz.box telefonbuch list
fb_tools fritz.box telefonbuch list buch:Telefonbuch
fb_tools fritz.box telefonbuch export save:"Fritz!Box-Telefonbücher.zip"
fb_tools fritz.box plugin telefonbuch export .
fbtp_websync.php [dir:Lokal-Dir] [web:HTTP-Dir] <web:HTTP-Dir> ... <Option>
Synchronisiert alle Firmware Versionen auf dem AVM-Server mit einen Lokalen-Verzeichnis.
Mit dem ersten Parameter dir
wird das Lokale-Verzeichnis definiert.
Der Parameter web
ist ein Multiparameter. d.H. er darf mehrmals angegeben werden.
Wenn mehrere Web-Verzeichnisse angegeben werden, brauchen weitere Parameter nicht den Protokoll und Domain-Angabe.
Die Server-Adressen von AVM lauten: http://download.avm.de, http://service.avm.de/downloads/ und http://osp.avm.de und können wie folgt angegeben werden:
Beispiel:
fb_tools websync d:/AVM http://download.avm.de/fritzbox/fritzbox-7490 /fritzbox/fritzbox-7590 -gm -d
Ich Empfehle, dass man den korrekten Pfad mit dem Browser vorher ausprobiert.
Zusätzlich gibt einige Optionen, die das Verhalten beeinflussen:
- -dl:[Sekunden]
Wartezeit zwischen zwei Downloads
- -do
Unterverzeichnisse ignorieren
- -f
Es werden mögliche Fehler ignoriert.
- -fd:[Datei]
Erstellt zu den durchgeführten Downloads eine Datei-Liste mit den Vollen Download-Urls.
- -fe:[ext,ext]
Nur die angegebenen Datei-Typen herunterladen
- -fl:[Datei]
Keine Firmware-Images herunterladen, sondern nur eine Download-Liste erstellen
- -gm
Zeitangaben im Webverzeichnis als Greenwich Mean Time interpretieren
- -md:<Datei>
Wird keine Datei angegeben, werden gelöschte Dateien auf dem AVM-Server Lokal mit _DEL markiert bzw. umbenannt. Wird eine Datei angegeben, dann wird nur eine Liste den gelöschten Dateien erstellt.
- -ow
Alte Labor-Dateien werden mit neuen überschrieben.
- -st:[Strftime]
Doppelte Dateien werden mit Strftime umbenannt
- -td
Datum aller Mutterverzeichnisse ändern auf das Datum des letzten Downloads setzen
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 Sprach-bedingte Nebeneffekte auftreten.
- Da mir ausschließlich DSL-Boxen zum testen zur Verfügung stehen, ist das verhalten an Fiber, Kabel, LTE und Internationale Geräte ungetestet! Gleiches gilt auch für MacOS!
Getestet:
- Fritz!OS 4.01 - 7.58
- Fritz!Box 3030, 3131, 3270, 5140, 5590, 4020, 4040, 7xxx(ax)
- Fritz!Repeater N/G, 300E, 310, DVB-C, 1750E, 1200(ax), 2400, 3000(ax), 6000
- Fritz!Powerline 540E, 546E
- PHP 4.4 - 8.3 (Windows)
- PHP 7.4 & 8.1 (Linux)
- Linux: Debian, Knoppix, Mint, OpenSuse, Ubuntu
- MacOS X 10.6 Snow Leopard
- Windows 2000 bis Windows 11
Benutzte Bibliotheken:
- PHPAES © 2008-2018 Cody Phillips
- sha256 © 2006-2009 Perry McGee für PHP 4 - 5.2
Fragen & Antworten:
Ich habe mein Anmeldekennwort vergessen! - Kann man es mit fb_Tools hacken?
"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 Betriebssysteme 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 Konsole haben.
Cross-Site-Scripting funktioniert nicht, da die Konsole 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 herum gespielt
Auf der anderen Seite sind Programmierfehler oder Änderungen mit neueren PHP-Version viel wahrscheinlicher als mit älteren PHP-Versionen. z.B. Gibt es ein Problem mit PHP 7.0, wo auf einigen Betriebssystemen der UTF-8-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 für Windows 10: PHP 8.1 - Windows 7: PHP 7.1.33 - Linux: PHP 7.4 - Wine: PHP 5.4.45
Wird es eine GUI / Benutzeroberfläche kommen?
Nein! fb_Tools ist als Konsolen-Programm gedacht und es ist keine Oberfläche geplant.
Aber es gibt eine
JavaScript-Version und für Windows eine Version 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 Zugangsdaten zu verwenden, da manche Betriebssysteme die Konsolen eingaben unverschlüsselt mit loggen.
Welche Funktionen sind noch zu erwarten?
Ereignisse, Telefonbuch, Smarthome, Internetstatus, TR064, Plugins, Konfig-Datei Entschlüsselung ohne Fritz!Box, usw.
Wird es von fb_Tools auch eine Internationale-Version geben?
Wenn sich jemand als Übersetzer Anbietet, lässt sich möglicherweise drüber reden...
"Telefoniert" fb_Tools nach Hause?
Ja! Die Funktion, die das tut, nennt man Update
Es wird ca. 3.5 mal im Jahr eine Hash-Datei angefordert, und geprüft, ob es ein Update gibt. - Das eigentliche Update müssen sie Manuell auslösen.
Abschalten kann man es mit der Variable
$cfg['upda'] = 0;
und die Kommunikation mit "mengelke.de" kann mit
$cfg['uplink'] = 0;
unterbunden werden.
Wenn sie fb_Tools in einen Cron-Dienst eingebunden haben, dann können sie entweder mit der Variabel
$cfg['cron'] = true;
oder mit der Option
-cm
ausschalten.
Programmgeschichte:
V0.40 06.01.2024
- BUG: Beim Login wurde nur das letzte Status-Flag gespeichert
- NEU: Unterstützung für Fritz!DECT 350 (Fensterkontakt)
- Weitere verbesserungen an der StrfTime-Ersatzfunktion
V0.39 20.12.2023 (Weihnachtsupdate)
- BUG: Supportdaten wurden nicht korrekt als ZIP-Datei gespeichert
- BUG: JSON-Enoder funktionierte nicht ganz korrekt
- BUG: Wahlhilfe setzte die Varabeln bei TFA falsch
- BUG: Vorgepackte GZip-Daten wurden ohne gz-Extension gespeichert
- BUG: StrfTime-Ersatzfunktion hatte einige Formatierungen falsch berechnet
- BUG: Der Filter wurde in Ereignisse falsch interpretiert
- FIX: SystemStatus wurde bei einer Fiber-Box nicht korrekt erkannt
- FIX: Bei Smarthome funktionierte der "Schalt"-Befehl nur bei AVM-Geräten
- FIX: Gepackte ZIP-Daten ohne Inhalt wurden als Fehler erkannt
- FIX: Die Checksum-prüfung bei TAR Archiven ist jetzt etwas tolleranter
- Converter-Modus von Supportdaten überarbeitet
V0.38 01.04.2023 (10 jähriges Jubiläum)
- BUG: textTable wurde an einigen Stellen nicht korrekt aufgerufen
- BUG: Wenn die DECT-Lampe offline war, wurden einige Werte nicht korrekt berechnet und ausgegeben
- Tennung von Templates und Aktoren in Smarthome und es können infos von Templates angezeigt werden
- Ausgabe kann anonymisiert werden
V0.37 23.03.2023
- BUG: Konfig-Dateien ließen sich nur in existierene Verzeichnisse aufteilen
- BUG: Beim Enschlüsseln von Konfig-Daten wurden Teile leer gelassen
- FIX: Komfort-Liste enthielt keinen Abschluss LF
- NEU: Unterstützung von Templates, die nicht Aktorbezogen sind
- NEU: Wahlhilfe unterstützt Vanity-Codes und verschiedene Variabeln
V0.36 15.02.2023
- BUG: Konfig-Verzeichnisse ließen sich nicht einlesen
- FIX: SupportDaten Extrakt übernahm "'" oder "/" im Dateinamen
- FIX: LogIn gab im Fehlerfall keine Fehlermeldung zurück
- Für den Cron-Modus können über die Konfig eigene Werte gesetzt werden
- textTable berechnete die sichtbaren Tabellen ein Zeichen zu lang
- BoxInfo erkennt etwas mehr Flags
- Beispielhilfe verbessert
V0.35 23.12.2022
- BUG: "Login" und "Konfig JSON" führte zu einen PHP-Fehler
- BUG: MD5-Content funktionierte nicht
- NEU: JSON-Support für AnrufListe, Ereignisse, GetIP und Traffic
- Touch-Verhalten geändert
V0.34 20.12.2022
- BUG: Im Ersten Parameter konnten die OTP-Token nicht gematcht werden
- BUG: Der Parameter "Check" von der Update-Funktion wurde ignoriert
- NEU: Option -li:[Version] für Login-Version dazugekommen
- PHP-Funktion json_encode mit eigenen JSON-Encoder ersetzt
- Vereinfachte Übergabe von OTPAuth ermöglicht (Ohne Anführungszeichen)
- OTPauth kann auch direkt als [mode] aufgerufen werden
- Content-MD5 wurde nur per hexadezimal und nicht per Base64 überprüft
V0.33 10.12.2022
- BUG: SmartHome hatte die HSV-Angaben nicht korrekt umgesetzt
- BUG: BoxInfo hatte in zwei Fällen verkehrte Werte ausgegeben
- FIX: request machte Fehler bei älteren PHP-Versionen
- FIX: Pluginliste zeigte jedes Plugin auf dem Mac dreimal an
- FIX: Verbesserte Tabellendarstellung bei Komfort & Smarthome
- Kleine Verbesserungen an der Ausgabe
- Ist der Dateiname gleich ":" wird nichts geschrieben
V0.32 01.12.2022
- BUG: Es wurde zu spät geprüft, ob die Funktion hash_pbkdf2 vorhanden ist
- BUG: Interne Funktion getArg konnte keine "0" als Argument finden
- BUG: Der XML-Parser hatte beim Array in der ersten Kette, die Attribute falsch eingeordnet
- FIX: Interne Funktion textTable entwertet jetzt Multibyte-Zeichen
- FIX: Viele Anpassungen an PHP 8.x
- FIX: System-Status an Fritz!OS 7.39+ angepasst
- FIX: Ereignisse an Fritz!OS 7.39+ angepasst
- FIX: Updates für die Windows-version konnten mit https fehlschlagen
- FIX: Farbnamen für die Farblampe konnte nicht alle bei älteren PHP Versionen gesetzt werden
- NEU: Unterstützung von Vorlagen in Smarthome (Werden mit SET gesetzt)
- NEU: Das Plugin OTPAuth ist in fb_Tools eingeflossen (Info OTPauth)
- NEU: Volle Unterstützung für Zwei-Faktor-Authentisierung mit Option -tf:<otp> (Danke an: Alexander-Palm.de)
- NEU: WireGuard Zugangsdaten werden ab Fritz!OS 7.39+ (soweit vorhanden) mit angezeigt
- NEU: Option -cm setzt die Variable $cfg['cron'] für den Cron-Modus
- NEU: Option -px:[proxy.tld:port] Für Proxy-Requests OHNE Authentisierung
- NEU: BoxInfo gibt zusätzlich Login-Informationen aus
- NEU: BoxInfo und SystemStatus speichern die RAW-Daten mit der Option -rd:<path>
- NEU: ZIP-Support mit Deflate/BZip2 und AES für im-/export von Archiven (ZIPCrypto nur import)
- NEU: Komfort-Funktionen Schalten (WLAN / Anrufbeantworter / Rufumleitungen / Weckrufe)
- NEU: Kurzschreibweise im 1. Parameter, um eine alternative Konfig nachzuladen: preset-name::/path/fb_config.php
- Wahlhilfe an 2FA angepasst
- Einfache Unterstützung der Benutzerrechte ab Fritz!OS 5.30+
- Hasher hat nun einen eigenen Aufruf bekommen
- Verbesserter gzdecode-Ersatz für PHP4
- Eigener Ersatz für strftime, wenn irgendwann ab PHP 8.2+ die Funktion entfernt wird
- WordWrap berücksichtigt Whitespaces am Anfang der Zeile
- Drag'n'Drop-Modus verbessert (Es können verschiedene Dateiendungen definiert werden)
- SID-Login (Option -s:sidfile) unterstützt jetzt auch das JSON-Format
V0.31 23.05.2021
- FIX: Fritz!OS 7.24+ reagiert bei SmartHome "simpleonoff" nicht auf "2" (toggle) - Danke an: Klaus M.
- BUG: AES-Bibliotheken wurden mit anderen Bibliotheken verwechselt
- Force-Modus in SmartHome überarbeitet
- Notfalls wird nun unter Linux auch "busybox ttysize" zu rate gezogen, wenn sich die Konsolenbreite nicht ermitteln lässt
- Verbesserter Login Behandlung von Anmeldedaten ohne Benutzer ab Fritz!OS 7.24+
- Boxinfo mit Benutzererkennung ab Fritz!OS 7.24+
- Info-Funktion um weitere kleine Tools erweitert
- Kleine Anpassungen an PHP 8
V0.30 30.03.2021
- BUG: Es wurde keine Ereignisse gefunden, wenn nicht jede [Eckige] Klammer wieder korrekt geschlossen wurde
- BUG: Option -o hat keine Tabellen erstellt
- BUG: Auto-Update-Check hatte nicht die Versionsnummer geprüft und die Touch-Datei nicht korrekt angelegt
- FIX: Traffic Anpassung an Fritz!OS 7.25
- NEU: Option -ps:[Name] Übernimmt die Fritz!Box-Angaben aus der Preset-Liste
- NEU: Fast alle Fehlermeldungen geben einen Error-Code zurück (7 verschiedene Gruppen)
- fb_config.php kann auch in .fb_config.php umbenannt werden
- Ist die Update-Funktion komplett deaktiviert, wird auch keine Hilfe dazu angezeigt
V0.29 16.11.2020
- BUG: PHP4/5 Speicherzugriffsfehler bei fehlerhaften Regulären Ausdruck
- FIX: realpath() unterscheidet bei Windows mit älteren PHP-Versionen nicht zwischen Groß/Kleinschreibung
- Bei Logintest gibt es jetzt Debug-Infos
- Aus allen Plugins, fb_config.php und history.txt das CR-Zeichen (\r) entfernt
V0.28 13.11.2020
- ÄNDERUNG: getevent() gibt nun ein Array zurück
- ÄNDERUNG: Optionen können mit den Argumenten vermischt werden
(Zusammengeschriebene Optionen [Alte Schreibweise im letzten Parameter] werden jetzt nicht mehr erkannt)
- FIX: Option -cs erkennt \t (Tabulator)
- FIX: Umlaute in der Konfig wurden nicht decodiert
- FIX: Hash() hatte im RAW-Modus fehlerhafte ausgaben erzeugt
- NEU: Option -ft:[strftime] für Ereignisse und Anrufliste für eigene Datumsformate
- NEU: Plugins können eigene Voreinstellungen bekommen $cfg['plugin'][<Plugin>] = array()
- NEU: Interne Funktion file_stream() liest/schreibt Zeilenweise GZip/BZip2-Daten
- NEU: Smarthome: Unterstützung für Fritz!DECT 500 und vermutlich auch andere Han-Fun Geräte
- NEU: Zugangsdatenübersicht mit Apps, GoogleAuth und um Tickets erweitert
- NEU: Traffic-Zähler kann ausgelesen werden
- NEU: Unterstützung von PBKDF2-Login ab Fritz!OS 7.24
- NEU: Unterstützung von weiteren Hash-Bibliotheken für PHP 4/5
- Interne Funktionen ifset(), getArg() erweitert
- PHP-Batch für Windows weiter optimiert (Benötigt keine Schleife mehr) - Danke an Peter G.
- PHP-Datenbank Erweiterungen (mysqli|sqlite3) werden für das Plugin "SQLDB" erkannt
- Der erste Parameter mit der Fritz!Box Angabe akzeptiert Benutzername/Kennwort in Anführungszeichen
V0.27 07.07.2020
- FIX: Info-Hilfe
- FIX: Konfig-Checksum Berechnung und Konfig <-> TAR für Fritz!OS 7.19+ angepasst
- FIX: LED für Fritz!OS 7.19+ angepasst und mit weiteren Funktionen
- BUG: Ereignis-Filter funktionierten nicht korrekt
- BUG: "konfig file" hat TAR-Archive immer mit GZ Komprimiert
- NEU: Eingeschränkter BZip-Support
- Zugangsdatenübersicht für weitere WLAN-Daten erweitert
- Kurzschreibweise $str{$offset} entfernt
- Auto-Update Check verbessert (Speichert das Update-Datum entweder im Script, Plugins oder in fb_config.php)
V0.26 23.09.2019
- BUG: Workaround unwirksam, wenn zlib nicht vorhanden ist
- BUG: Benannte Argumente wurden trotz fehlgeschlagener Prüfung akzeptiert
- BUG: Konfig File-DeCrypt sucht sich tot, wenn kein richtiges Kennwort angegeben wurde
- NEU: Option -cc:[KonfigDatei] dazu gekommen, um eine alternative Benutzerkonfig nachzuladen
- NEU: Option -pp:<PluginPath> dazu gekommen, um Plugins in einen alternativen Ordner zu benutzen
- Es können jetzt auch einzelne Plugins installiert/aktualisiert werden
- Info Extension zeigt jetzt auch zlib an (.gz-Support)
V0.25 11.09.2019
- BUG: Lokale Benutzer-Konfig konnte nicht gefunden werden
- BUG: cfgdecrypt konnte in bestimmen Fällen nicht den AES-Key finden
- FIX: Anpassungen an PHP 5.2 und älter vorgenommen
- NEU: Plugins: LED und AnrufListe (Call) sind nun Bestandteil von fb_tools
- NEU: Plugins können nun ohne den Parameter "Plugin" aufgerufen und von fb_tools installiert/aktualisiert werden
- NEU: SmartHome für Unterstützung für Schaltsteckdosen und Heizregler (Schalten und Daten ermitteln)
- NEU: Unterstützung von benannten Argumenten in beliebiger Reihenfolge (pass:admin123 func:export mode:konfig)
- NEU: Login über HTTPS mit älteren Fritz!Boxen ermöglicht (Funktioniert nur mit PHP 5.4 - 5.5 / OpenSSL 0.98)
- NEU: Konfig File-DeCrypt akzeptiert Password-Listen (Als Datei oder direkt angegeben: pass[,]:foo,bar,admin)
- NEU: Kontext basierte Optionen ermöglicht und Option -ua für User-Agent dazu gekommen und Option -dl umbenannt in -pe
- Sämtliche Funktionen können nun GZip-Dateien mit stftime erstellen
- Interne Funktionen request(), file_content(), preg_array(), ifset(), listDir() erweitert/ersetzt
- Drag'n'Drop-Modus geändert ',' ersetzt durch '*'
- Verbesserte Ausgabe von Text-Tabellen
- Codepage-Tabellen erweitert und verbessert
- Dial wurde in Wahlhilfe umbenannt und unterstützt Telefonbezeichnungen als Angabe für das Telefon
- Zur Vereinfachung in fast allen Beispielen, die Login-Angabe durch fritz.box ersetzt
V0.24 10.04.2019
- Bug: Plugins wurden nicht mit Absoluten Pfad gefunden
- Bug: SupportDaten konnten ab Fritz!OS 6.8 nicht mit Telemetrie gespeichert werden
- Funktion Dial an Fritz!OS 7.1 angepasst
V0.23 01.04.2019
- Bug: Etliche Anpassungen an PHP 7.x
- Bug: Ereignisse konnten ab OS.6.69 nicht gefiltert werden
- Bug: Unsinnige Dateigröße wird im Debug-Modus ignoriert
- Bug: konfig2array hat Strings, die nicht in Anführungszeichen waren, als Integer interpretiert
- Plugin-Aufruf überarbeitet und vereinfacht
- Konfig-Decrypt 0.23 ist End-Of-Service und wurde in ein Plugin verbannt (fbtp_konfigdecrypt.php)
- Neue Entschlüsselungsfunktion implementiert, die keine Fritz!Box zum entschlüsseln benötigt
- Zugangsdatenübersicht erweitert (Diagnose/Wartung, Netzwerkumgebung, TR-64, GUI-Unterordner)
- Eigenen UTF-8 En/Decoder implementiert
- SystemStatus verbessert (Jetzt mit Bootloader-Hash)
- Boxinfo verbessert (Unterstützung von juis_boxinfo.xml)
- Option -dl:[extension] dazu gekommen, um ohne Rückfrage PHP-Erweiterungen nachzuladen
- HTTPS-Requests über die Option -p:https möglich, wenn die PHP-Erweiterung OpenSSL verfügbar ist
- Updates werden, wenn möglich, über https abgefragt/heruntergeladen
V0.22 11.04.2017
- Bug: date.timezone wird nun etwas früher gesetzt
- Bug: Ereignisse machte bei deaktivierten wrap Probleme
- Bug: Windows-Laufwerksbuchstaben wurden bei Pathangaben entwertet
- Bug: SID-Option funktionierte nicht richtig
- Neuer Parameter für Login (Speichert SID mit Firmware-Version und Host-Daten)
V0.21 01.04.2017
- Bug in Anmeldung mit älteren Boxen behoben
- Bug in Info StrfTime entfernt, die bei Windows 2000 / XP auftreten
- Downloads können auch mit GZip gepackt werden
- Erste Vorbereitungen getroffen, um fb_Tools außerhalb der Konsole zu betreiben
V0.20 20.03.2017
- Char-Kodierung: cp65001 (utf8) hinzugefügt
- Workaround für PowerShell Erkennung verbessert
- GetIP: Filter implementiert
- Konfig DeCrypt: Internationale Sprachen an OS 6.8 angepasst
- Konfig Extract: pattern.txt in index.txt umbenannt
- Konfig Extract/File/Import: Unterstützung von gz-Dateien / tar/tgz-Archiven
- SupportDaten: Unterstützung von gz-Dateien
- SupportDaten Extrakt: 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 implementiert
- 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 unterstü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 Synchronisiert 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 Konsolen-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 größ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 Konsolen-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 implementiert
- Keine Trennung mehr zwischen Modes mit und ohne Login
- Script läuft immer bis zu ende 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 implementiert
- 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
V0.0 - 0.07 19.01 - 30.03.2013 (Interne Releases)
- Interne Request Funktion implementiert
- Login & Logout Funktion implementiert
- Einfache Hilfeausgabe implementiert
- SystemStatus implementiert
- Fehlerverarbeitung verbessert
- Interne UPnP-Request Funktion implementiert
- GetIP implementiert
- Reconnect implementiert
- Option -c (Kodierung für die Konsole) 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 Konsole implementiert
- Info implementiert
- Dial implementiert
- Hilfeausgabe weiter verbessert
Kategorie: 7-Zip, AVM, Fritz!Box, Konsole, PHP, PHPBatch, Video
<< Links | Home | Serien >> << Fritz!Box JSTool | Projekte | Fritz!Box VBScripte >>