Wie kann ich mich mit einem Captive-Portal in Windows automatisch in ein Netzwerk einloggen?

15

Ich habe ein WI-FI-Netzwerk im Büro, für das ich mich mit einem Captive-Portal anmelden muss (Anmeldung mit Benutzername und Kennwort erforderlich).

Ich möchte irgendwie ein Skript ausführen, das sich automatisch anmeldet, sobald ich mich mit dem Netzwerk verbinde (ohne meinen Browser starten und geöffnet zu müssen).

Seltsamerweise habe ich es geschafft, einen solchen Client für Android ( CoovaAX, der nicht mehr verfügbar ist) zu finden, aber keinen für Windows (ich habe Windows 7, wenn es darauf ankommt).

Hat jemand eine einfache Lösung dafür? Ich möchte lieber keine Zeit damit verbringen, mein eigenes Tool dafür zu programmieren.

Assaf Stein
quelle
Hat jemand in den letzten zwei Jahren ein Programm veröffentlicht, um dieses Problem zu lösen? Es gibt vernünftige Lösungen für Android ( play.google.com/store/apps/... ) und iOS).
Jess Riedel
Auch Meta: Wie mache ich auf diese Frage aufmerksam? Ich kann meine eigene Version nicht fragen, da es ein Duplikat wäre, aber die Antwort hier ist völlig veraltet und ich möchte, dass frische Augen einen Blick darauf werfen.
Jess Riedel
@ JessRiedel Ich habe eine neue Antwort gepostet , die jetzt funktioniert und einen Link zu einer vollständigen Anleitung enthält .
Menasheh

Antworten:

7

Ich weiß nicht wie einfach ... Ich benutze ein Tool namens webinject.pl , um Websites zu testen. Es ist ein Perl-Skript, mit dem Sie Eingaben und erwartete Ergebnisse festlegen können, und das einfach dafür konfiguriert werden kann. Es kann eine Stunde dauern, bis es funktioniert.

Wie man es automatisiert. Der Windows-Taskplaner ist recht robust und kann eine Vielzahl von Ereignissen auslösen. Sie können es an ein Anmeldeereignis oder einen Ereignisprotokolleintrag binden oder es einfach alle 5 Minuten ausführen lassen (das ist etwas schmerzhaft). Ich erhalte beispielsweise ein Ereignis 32 im Systemprotokoll, wenn ich eine Netzwerkverbindung herstelle. Das könnte es tun.

uSlackr
quelle
Vielen Dank. Ich weiß nicht, ob dies mein Problem vollständig löst. Ich vermute, es kann eine Verbindung zur Site herstellen und meine Anmeldeinformationen senden, aber ich muss sie immer noch automatisch starten, wenn ich mich mit dem WLAN-Netzwerk des Unternehmens verbinde. Irgendeine Idee, wie das geht? Könnte ich vielleicht ein Ereignis mit Scheduler abfangen?
Assaf Stone
Ich habe mehr Details zum Auslösen hinzugefügt.
uSlackr
@uSlackr Können Sie den Code bereitstellen, den Sie dafür verwendet haben?
Cameron
@ Cameron Welcher Code? Die webinject.pl steht zum Download zur Verfügung. Die XML-Konfigurationsdatei ist spezifisch für Ihren Anwendungsfall.
uSlackr
Ja, könnte ich das XML als Beispiel sehen? Vielen Dank
Cameron
5

Sie können lynx (die Version mit SSL-Unterstützung) - einen textbasierten Browser - mit einer cmd_argsSkriptdatei verwenden, die die zum Anmelden erforderlichen Befehle enthält. Sie können eine solche Skriptdatei erstellen, indem Sie sich einmal mit lynx beim WLAN anmelden und die Eingaben protokollieren. Rufen Sie dazu lynx mit folgendem Argument auf:

lynx.exe -cmd_log =% USERPROFILE% \ lynxlog.txt`

Dann können Sie diese Datei umbenennen und sie verwenden, indem Sie lynx wie folgt aufrufen:

lynx.exe -cmd_args = FILENAME_HERE

Legen Sie dies in eine Batch-Datei. (Verwenden Sie entweder den vollständigen Pfad zur ausführbaren Lynx-Datei oder legen Sie diesen Pfad in der Umgebungsvariablen PATH fest.)

Sobald Sie das zum Laufen gebracht haben, erstellen Sie eine geplante Aufgabe, die durch die Ereignis-ID 10000in NetworkProfileder Protokollquelle ausgelöst wird und Microsoft-Windows-NetworkProfile/Operationaldiese aufruft:

Beispiel für einen Taskplaner-Trigger

Persönlich bündele ich das mit iexpress.exe, um es versteckt im Hintergrund auszuführen, und stelle sicher, dass die geplante Aufgabe so eingestellt ist, dass sie ausgeführt wird, auch wenn ich nicht angemeldet bin. Ich habe das gerade vor ein paar Wochen auf meinem Computer eingerichtet und es hat großartig funktioniert!

Quelle: Mein Artikel zur Automatisierung der Captive Portal-Anmeldung .

Menasheh
quelle
1

Ich habe dies in der Vergangenheit mit Windows Task Scheduler und einem PHP + MySQLLite-Skript gemacht. Das PHP + Mysqllite-Skript hat gerade geprüft, ob es Google erreichen kann. Wenn es umgeleitet wurde, hat es geprüft, ob es eine Routine für die Domain hat, zu der es umgeleitet wurde. Wenn ja, hat es sie ausgeführt. Die Mysqllite sollte die Cookies für den headless Browser behalten, den ich in PHP implementiert habe. Es wäre wahrscheinlich viel weniger Arbeit, nur einen greasemonkey zu verwenden, um sich einzuloggen. (Mit dem Nachteil, dass der Browser jedes Mal auftaucht, wenn Ihr Planer ausgelöst wird.)

Der Taskplaner-Trigger ist von Maschine zu Maschine unterschiedlich. Ich hatte einen Laptop, der WLAN-Verbindungen als Ereignisse protokollierte, und sie enthielten die SSID, damit ich filtern konnte, um nur diejenigen auszulösen, die mir wichtig waren.

Auf meinem aktuellen Laptop scheint das einzige Ereignis, das zuverlässig ausgelöst wird, die DHCP-Client-Verbindung zu sein. Natürlich brät dies jedes Mal, wenn ich eine IP-Adresse erhalte und mir keine SSID verrate.

Mit der Windows-Ereignisanzeige können Sie überprüfen, von welchen Ereignissen Sie auslösen können. Ich habe gerade dreimal mein WLAN ein- und ausgeschaltet und überprüft, welche Ereignisse in der letzten Stunde dreimal ausgelöst wurden.

Rick
quelle