Inhalt
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
|
# 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:
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...
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 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:
fb_tools info openssl
fb_tools info extension
Getestet mit Windows XP (PHP 4.4 - PHP 5.4), Windows 7/Windows 10/Windows 11 (PHP 4.4 - PHP 8.1)
Diese etwas gefahrene Installation ist etwas für Nerds:
curl -o busybox.exe https://frippery.org/files/busybox/busybox.exe
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.)
extension_dir = /usr/bin
busybox bash
oder busybox sh
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:
sudo locale-gen de_DE.UTF-8 && sudo update-locale LANG=de_DE.UTF-8
sudo apt update && sudo apt dist-upgrade
- Mit Enter bestätigten und wieder ein Weilchen warten...
sudo apt install mc htop links manpages-de
- ist alles "Nice to have" - Kein muss!
mc /mnt
zu benutzen.
Getestet mit Windows 10 1809/1903/22H2 (64 Bit und PHP 8.1)
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]+'`
sudo dpkg -i fb-tools.deb
und falls ein Abhängkeitsfehler auftritt, anschließend mit:sudo apt install -f
beheben.
gdebi
nicht überall installiert ist, kann man es einfach mit sudo apt install gdebi-core
nachinstallieren.sudo gdebi fb-tools.deb
ausgeführt!
/usr/local/share/fb_tools
installiert und kann in der Konsole mit fb_tools
aufgerufen werden.
/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.
sudo apt install php-bz2 php-mysqli php-sqlite3
sudo apt install php-cli
(Alternativ: php8.1-cli
,php8-cli
, php7-cli
oder php5-cli
)
sudo zypper install php8 php8-openssl php8-zlib
sudo yum install php-cli
sudo pacman -S php
mkdir fb_tools && cd 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-
./fb_tools.php
alternativ auch php fb_tools.php
sudo apt install php-cli
(Alternativ: php8.1-cli
, php8-cli
, php7-cli
oder php5-cli
)
sudo zypper install php8 php8-openssl php8-zlib
sudo yum install php-cli
sudo pacman -S php
mkdir fb_tools && cd fb_tools
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]+'`
gzip -d fb_tools.php.gz
chmod +x fb_tools.php
./fb_tools.php info
mkdir plugin
./fb_tools.php plugin install
./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:
Ähnlich wie unter Linux. Einer der Unterschiede ist, dass PHP schon zu den Bordmitteln von MacOS gehört.
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]+'`
gzip -d fb_tools.php.gz
chmod +x fb_tools.php
./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)
Ab MacOS 12 Monterey wird PHP nicht mehr mitgeliefert und muss nachinstalliert werden.
brew install php
mkdir fb_tools && cd 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-
./fb_tools.php
php fb_tools.php
Erfolgreiche Rückmeldung(en):
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)
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
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
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>
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
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.
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 |
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.
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
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
fb_tools fritz.box info -d -w:80 -o:"ausgabe.txt"
Mit diesen Optionen kann man Feintuning bei den TCP/IP Verbindungen einstellen. In der Regel werden diese nicht benötigt.
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!)
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)
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
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.)
Um mehr Ausgaben zu Erzeugen kann man den Debug-Modus einschalten. Je nach Level bekommt man entsprechende Mitteilungen zu sehen. Im Standard Debug-Modus werden z.B. Status-Meldungen ausgegeben, wie Login/Logout etc.
Beispiel:
fb_tools info -d
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
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
Unterdrückt die Regelmäßige Update-Prüfung.
Beispiel:
fb_tools getip -nu
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"
-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
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"
$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'
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.
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
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"
Da die größe des Terminal-Fenstern begrenzt ist, können die Ausgaben Intelligent umgebrochen werden. Unter Linux und Windows wird die Terminal-Breite Automatisch ermittelt.
Beispiel:
fb_tools info -w:80
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.
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
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!
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!
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', ); |
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.
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
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
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
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!
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
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"
Hier wird sämtlichen Daten-Zähler der Fritz!Box ausgelesen und in einer Tabelle ausgegeben. Weitere Funktionen/Optionen gibt es bislang keine!
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
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
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:
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:
fb_tools fritz.box wh -
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!
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
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
:
Gibt eine einfache Übersicht aller Aktoren aus.
Beispiel:
fb_tools fritz.box smarthome list
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:","
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
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
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
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
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
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
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.
Alle geparsten Argumente ausgeben (Benannte und unbenannte Argumente - Teilweise mit Regex-Ergebnisse)
Beispiel:
fb_tools info arg foo foo:bar
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*,;%'
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.
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
Mit dem Internen JSON-Parser können beliebige JSON-Dateien lesbar angezeigt werden. Beispiel:
fb_tools info json .sndb.json.gz
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:
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:
secret
fb_tools info otpauth secret:"ABCDEFGHIJKLMNOPQRSTUVWXYZ234567"
-tf
fb_tools info otpauth -tf:"ABCDEFGHIJKLMNOPQRSTUVWXYZ234567"
fb_config.php
und den ersten Parameter für die Fritz!Box$cfg['preset'] = array('meinebox' => array('pass' => 'admin123', 'host' => 'fritz.box', 'iupw' => 'ABCD EFGH IJKL MNOP QRST UVWX YZ23 4567'));
fb_tools meinebox info otpauth
file
übergeben.fb_tools info otpauth file:"Z:/otp.txt"
Zusätzlich gibt es noch drei Optionen:
-rp
verwenden, um ein eigenes Datum-Format zu erzeugen
-ts
kann man Datum/Uhrzeit angeben, zu wann der Token gültig sein soll. (Vorzugsweise im Format: YYYY-MM-DD HH:MM:SS)fb_tools meinebox info otpauth -ts:'2024-04-25 13:15:35'
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
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.
Gibt alle externen Bibliotheken aus, die von fb_Tools gefunden/nachgeladen wurden
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
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
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
# 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!!!
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):
Beispiel:
fb_tools fritz.box 2fa aus
fb_tools 2fa test
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
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:
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
Diese Erweiterung kann nach Updates für die eigene oder mit einer Datenbank nach einer beliebigen Fritz!Box suchen. Funktionen (Func):
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
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
. Damit wird ihre Fritz!Box anonymisiert.
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.
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
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:
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:
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.
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:
cmd
hinzugezogen, wo der nur on/off oder an/aus akzeptiert.
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
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:
Beispiel:
fb_tools laborsync ./labor/
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:
Beispiele:
fb_tools manualsync . -fl
fb_tools manualsync ./pdf/ group:schnittstellen
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
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:
fb_tools serial C213.348
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:
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
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.
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.
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:
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:
;
-ft:'%Y-%m-%d %H:%M:%S'
oder -ft[,]:'%Y-%m-%d %H:%M:%S','%Y-%m-%d','%H:%M:%S'
-pf:'fb_'
wird aus call
und call_text
ein fb_call
und fb_call_text
. Sinnvoll, wenn man keine eigene Unterdatenbank erstellen kann.
-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.
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 .
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:
Ich habe mein Anmeldekennwort vergessen! - Kann man es mit fb_Tools hacken?
"Der Befehl ""php"" ist entweder falsch geschrieben oder konnte nicht gefunden werden."
Warum liegt PHP nicht im Archiv mit bei?
Warum werden von Ihnen so alte PHP-Version empfohlen? Haben die nicht alle Sicherheitslücken?
Wird es eine GUI / Benutzeroberfläche kommen?
Die Übergabeparameter für die Fritz!Box-Adresse sind Kryptisch - Warum?
Welche Funktionen sind noch zu erwarten?
Wird es von fb_Tools auch eine Internationale-Version geben?
"Telefoniert" fb_Tools nach Hause?
$cfg['upda'] = 0;
und die Kommunikation mit "mengelke.de" kann mit $cfg['uplink'] = 0;
unterbunden werden.$cfg['cron'] = true;
oder mit der Option -cm
ausschalten.
V0.40 06.01.2024
V0.39 20.12.2023 (Weihnachtsupdate)
V0.38 01.04.2023 (10 jähriges Jubiläum)
V0.37 23.03.2023
V0.36 15.02.2023
V0.35 23.12.2022
V0.34 20.12.2022
V0.33 10.12.2022
V0.32 01.12.2022
V0.31 23.05.2021
V0.30 30.03.2021
V0.29 16.11.2020
V0.28 13.11.2020
V0.27 07.07.2020
V0.26 23.09.2019
V0.25 11.09.2019
V0.24 10.04.2019
V0.23 01.04.2019
V0.22 11.04.2017
V0.21 01.04.2017
V0.20 20.03.2017
V0.19 29.01.2017
V0.18 20.08.2016
V0.17 06.08.2016
V0.16 20.07.2016
V0.15 07.07.2016
V0.14 30.06.2016
V0.13 25.06.2016
V0.12 16.06.2014
V0.11 17.02.2014
V0.10 07.01.2014
V0.09 22.10.2013
V0.08 01.04.2013
V0.0 - 0.07 19.01 - 30.03.2013 (Interne Releases)
Kategorie: 7-Zip, AVM, Fritz!Box, Konsole, PHP, PHPBatch, Video
<< Links | Home | Serien >> << Fritz!Box JSTool | Projekte | Fritz!Box VBScripte >>