ich kann mich erinnern, dass wir mal die Problematik mit Unifi besprochen hatten, dass die Clients nachdem sie aus p_wifi rausgeflogen sind weiterhin das WLAN nutzen können, bis sie sich neu anmelden müssen.
Heute bin ich auf https://github.com/finish06/pyunifi gestoßen, womit ich nach kurzem Ausprobieren ein Python-Skript schreiben konnte, mit dem man Clients nach verwendetem Benutzernamen disconnecten konnte.
Probeweise läuft nun dieses Skript nach dem linuxmuster-wlan-reset, damit die Schülerinnen und Schüler direkt nach dem Auslaufen der WLAN-Berechtigung dieses auch nicht mehr nutzen können.
from pyunifi.controller import Controller
ip = '10.16.1.1'
username = 'administrator'
password = 'SecretPassword'
# ssl_verify = False, falls selbsterstelltes Zertifikat
c = Controller(ip, username, password, ssl_verify = False)
def disconnect_pupils():
clients = c.get_clients()
for client in clients:
# Wenn der Anmeldename länger als 5 Buchstaben ist, ist es ein SoS
if len(client['1x_identity']) > 5:
c.disconnect_client(client['mac'])
disconnect_pupils()
Bei uns sind Schülerlogins länger als 5 Buchstaben, so dass wir dadurch filtern können. Es wäre aber auch denkbar, dass man die Anmeldeidentität mit einem übergebenen Benutzernamen vergleicht, um nur diesen Benutzer rauszuwerfen.