Mit diesem Tool können Sie Daten durchsuchen, die über die UniFi Controller-API bereitgestellt werden, die mit PHP, JavaScript und dem Bootstrap-CSS-Framework entwickelt wurde. Es wird mit einer PHP-Klasse für den Zugriff auf die UniFi Controller API geliefert, die mehr API-Endpunkte unterstützt als das UniFi API-Browsertool.
Wenn Sie vorhaben, Ihren eigenen PHP-Code für die Interaktion mit der UniFi-Controller-API zu erstellen, wird empfohlen, die eigenständige Version der API-Client-Klasse zu verwenden, die unter https://github.com/Art-of-WiFi/ zu finden ist. UniFi-API-Client. Dort finden Sie auch Beispiele und detaillierte Anleitungen zur Nutzung.
Bitte beachten Sie Folgendes, wenn Sie den UniFi API-Browser verwenden:
Da sich die Struktur der Konfigurationsdatei geändert hat, empfehlen wir, beim Upgrade von 1.x auf 2.x eine Neuinstallation zu erstellen.
Das UniFi API-Browsertool bietet die folgenden Funktionen:
$debug
in der Konfigurationsdatei auf true
um den Debug-Modus zu aktivieren)Bitte beachten Sie, dass der gebündelte API-Client viele weitere API-Endpunkte unterstützt. Allerdings ist es nicht sinnvoll, alle zum API-Browser hinzuzufügen.
Die Installation dieses Tools ist recht einfach. Der einfachste Weg, dies zu tun, ist die Verwendung von git clone
, der auch einfache Updates ermöglicht:
cd
zum Stammordner Ihres Webservers (unter Ubuntu ist dies /var/www/html
) und führen Sie den folgenden Befehl an Ihrer Eingabeaufforderung aus: git clone https://github.com/Art-of-WiFi/UniFi-API-browser.git
Alternativ können Sie die ZIP-Datei herunterladen und in ein Verzeichnis Ihrer Wahl entpacken und dann die folgenden Konfigurationsschritte ausführen.
@scyto verwaltet Docker-Container für die schnelle und einfache Bereitstellung des UniFi API-Browsertools. Weitere Informationen finden Sie auf dieser Wiki-Seite im Repository. Bitte beachten Sie, dass wir keinen Support für Docker-basierte Installationen anbieten.
config/config-template.php
konfiguriert, die in config/config.php
kopiert/umbenannt werden sollteconfig/config.php
speichernconfig/config-template.php
config/users-template.php
http(s)://<server IP address>/UniFi-API-browser/
Unterstützung für UniFi OS-basierte Controller (z. B. UniFi Dream Machine Pro) wurde mit Version 2.0.7 hinzugefügt. Wenn Sie die Details für ein UniFi OS-Gerät zur Datei config/config.php
hinzufügen, achten Sie bitte darauf, der URL kein Portsuffix oder abschließende Schrägstriche hinzuzufügen.
Wenn Sie den UniFi-API-Browser verwenden, um über die WAN-Schnittstelle eine Verbindung zu einer Netzwerkanwendung auf einem UniFi OS-basierten Gateway herzustellen, ist es notwendig, eine spezifische Firewall-Regel zu erstellen, um externen Zugriff auf Port 443 auf der lokalen Schnittstelle des Gateways zu ermöglichen. Weitere Informationen finden Sie im folgenden Blogbeitrag: https://artofwifi.net/2022/04/07/how-to-access-the-unifi-controller-by-wan-ip-or-hostname -on-a-udm-pro/
Seit Version 2.0.0 können Sie das Dropdown-Menü „Sammlungen“ um Ihre eigenen Optionen erweitern, indem Sie diese zur Datei config.php
hinzufügen.
Hier ist ein Beispiel:
/**
* adding a custom sub-menu example
*/
$ collections = array_merge ( $ collections , [
[
' label ' => ' Custom Menu ' , // length of this string is limited due to dropdown menu width
' options ' => [
[
' type ' => ' collection ' , // either 'collection' or 'divider'
' label ' => ' hourly site stats past 24 hours ' , // string that is displayed in the dropdown menu
' method ' => ' stat_hourly_site ' , // name of the method/function in the API client class that is called
' params ' => [( time () - ( 24 * 60 * 60 )) * 1000 , time () * 1000 ], // an array containing the parameters as they are passed to the method/function
],
[
' type ' => ' collection ' ,
' label ' => ' daily site stats past 31 days ' ,
' method ' => ' stat_daily_site ' ,
' params ' => [( time () - ( 31 * 24 * 60 * 60 )) * 1000 , time () * 1000 ],
],
[
' type ' => ' divider ' , // dividers have no other properties
],
[
' type ' => ' collection ' ,
' label ' => ' enable the site LEDs ' ,
' method ' => ' site_leds ' , // don't go too wild when adding such calls, this example is simply to show the flexibility
' params ' => [ true ]
],
[
' type ' => ' collection ' ,
' label ' => ' disable the site LEDs ' ,
' method ' => ' site_leds ' , // don't go too wild when adding such calls, this example is simply to show the flexibility
' params ' => [ false ]
],
],
],
]);
Hinweis: Für die Menüoption collection
“ sind die „Eigenschaften“ type
, label
, method
und params
erforderlich.
So sieht das Ergebnis für das obige Beispiel aus:
Wenn Sie das Tool mit dem Befehl git clone
installiert haben, können Sie Aktualisierungen anwenden, indem Sie in das Verzeichnis gehen, in dem das Tool installiert ist, und von dort aus den Befehl git pull
ausführen.
Andernfalls können Sie einfach den Inhalt der neuesten ZIP-Datei in das Verzeichnis kopieren, in dem das Tool installiert wurde.
Der mit diesem Tool gelieferte PHP-API-Client basiert auf der Arbeit der folgenden Entwickler:
und die von Ubiquiti veröffentlichte API:
Weitere enthaltene Bibliotheken:
Vorsicht
Es ist wichtig zu beachten, dass das UniFi API-Browsertool ein leistungsstarkes Tool ist, das den Zugriff auf vertrauliche Daten und Konfigurationsoptionen auf Ihrem UniFi-Controller ermöglicht. Daher ist es wichtig, dass Sie geeignete Sicherheitsmaßnahmen ergreifen, z. B. den Zugriff auf das Tool auf vertrauenswürdige Personen beschränken. Darüber hinaus sollten Sie sich der Sicherheitsrisiken bewusst sein, die mit der Ausführung von PHP-Code auf Ihrem Server verbunden sind.
Wir empfehlen dringend, die Benutzername/Passwort-Authentifizierungsfunktion zu aktivieren, indem Sie eine config/users.php
basierend auf der enthaltenen Datei config/users-template.php
erstellen. Achten Sie beim Erstellen von Passwörtern und deren SHA512-Hashes für den Eintrag in die Datei config/users.php
darauf, starke Zufallspasswörter zu verwenden. Weitere Einzelheiten finden Sie in den Anweisungen in der Datei config/users-template.php
Dieses Projekt wird aktiv gepflegt und Feedback und Vorschläge sind jederzeit willkommen. Wenn Sie auf Probleme stoßen oder Verbesserungsvorschläge haben, nutzen Sie bitte die GitHub-Problemliste oder die Ubiquiti-Community-Foren (https://community.ubnt.com/t5/UniFi-Wireless/UniFi-API-browser-tool-released/). mp/1392651), um Ihre Ideen und Fragen zu teilen.
Hier sind ein paar Screenshots des Tools in Aktion.
Das Anmeldeformular bei aktivierter Benutzerauthentifizierung:
Das Dropdown-Menü zur Controller-Auswahl:
Das Dropdown-Menü zur Site-Auswahl:
Das Sammlungs-Dropdown-Menü:
Zeigt die Website-Einstellungssammlung im JSON-Format an:
Anzeige der Website-Einstellungssammlung im interaktiven PHP-Format:
Das Modal „Über“: