Du willst also anmeldepflichtige WLAN-Zugänge automatisiert nutzen, um damit Freifunk anzubieten, dabei ggf. Zeit-/Zugangsbeschränkungen automatisiert umgehen — und suchst jemanden, der Dir das programmiert? Möchtest Du nochmal drüber nachdenken und den Beitrag überarbeiten?
Die Wortwahl ist jetzt aber hoffentlich nur Zufall, oder?
Handys haben da mittlerweile passende Möglichkeiten. Vielleicht kann man da was adaptieren um das Captive Portal wegzucracken.
Ich habe bei uns im Freifunk Dresden eine kleine Lösung gebaut, um Router automatisch durch ein (bestimmtes) Captive Portal anzumelden.
Da wir bereits die Möglichkeit haben, dass sich ein Knoten im 5-GHz-Band als WLAN-Client mit einem vorhandenen WLAN verbindet und dieses anschließend auf den WAN-Port bridged, musste ich diesen Teil nicht neu entwickeln. Es ging lediglich darum, die Anmeldung am Captive Portal zu automatisieren.
Die Lösung besteht aus einem kleinen Shell-Skript, das in einem updatefesten Verzeichnis abgelegt wird (ich weiß allerdings nicht, ob Gluon eine vergleichbare Möglichkeit bietet).
Beim Start prüft das Skript zunächst, ob der benötigte Cronjob bereits vorhanden ist. Falls nicht, wird er automatisch angelegt.
Der Cronjob wird anschließend alle fünf Minuten ausgeführt und arbeitet nach folgendem Prinzip:
- Es wird geprüft, ob eine Internetverbindung vorhanden ist, indem die bekannte Google-Connectivity-Check-Seite aufgerufen wird.
- Falls keine erfolgreiche Verbindung möglich ist, wird automatisch ein HTTP-POST an die Login-Seite des Captive Portals gesendet.
- Dafür muss zuvor lediglich die Login-URL sowie die benötigten POST-Daten (z. B. buttonClicked=4) des jeweiligen Captive Portals ermittelt werden.
Vielleicht hilft die Idee ja auch anderen Communities.
Ansonsten bleibt immer noch die Trickreiche Lösung, mit einem OpwenWrt Router am WAN Port.
`#!/bin/sh
#Datei: /etc/ddmesh/post-setup-wifi.sh
LOGIN_URL=„https://captive-portal.example.com/login.html“
CHECK_URL=„http://connectivitycheck.gstatic.com/generate_204“
POST_DATA=„buttonClicked=4&redirect_url=&err_flag=0“ #4=WLC-Authentifizierungsversuch&keine-Weitertleitung&erfolgreicheAuthentifizierung ![]()
CRON=„*/5 * * * * wget -O - $CHECK_URL --timeout=5 2>/dev/null | grep -q . && wget -O /dev/null --post-data=‚$POST_DATA‘ $LOGIN_URL --no-check-certificate“
if ! crontab -l 2>/dev/null | grep -q „connectivitycheck.gstatic.com“; then
logger -t captive „Restore Cronjob“
(crontab -l 2>/dev/null; echo „$CRON“) | crontab -
/etc/init.d/cron restart
fi`
Die eigentliche Herausforderung besteht darin, die korrekten POST-Daten des jeweiligen Captive Portals herauszufinden. Das geht in der Regel über die Entwicklertools des Browsers oder durch Mitschneiden des HTTP-Verkehrs während einer manuellen Anmeldung. Sobald diese bekannt sind, lässt sich das Verfahren relativ „einfach“ auf andere Captive-Portale anpassen. Viel Spaß bei coden..
Gibt es eine Möglichkeit - wenn im WLAN Anmeldefenster von z.B. MOBYCLICK eben steht „Nur 60 Minuten“ dass es immer nach 60 Minuten automatisch NEU anmeldet, bzw. ständig den PING checkt zum Freifunk Server - und dann neu anmeldet…!!! Falls die Session abgelaufen ist!!!
Ja, die Möglichkeit ist du baust es ein und teilst deine Erkenntnisse hier mit anderen. Viel Erfolg.