Wie ich einen Python-Bot erstellt habe, um mich automatisch bei einem Captive-Portal anzumelden

Ein schrittweises Python-Tutorial zum Erstellen eines Login-Bots

Heutzutage ist das Internet kein Privileg, sondern eine Notwendigkeit. Überall dort, wo wir hingehen, benötigen wir eine ständige Verbindung zum Internet über ein Wi-Fi-Netzwerk oder ein mobiles datenbasiertes Netzwerk.

Stellen Sie sich vor, wir treten einer neuen Universität oder Organisation bei, die uns über WLAN mit Internet versorgt. Die Organisation implementiert möglicherweise eine sehr häufige Anmeldeseite zur Authentifizierung ihrer Benutzer, die als Captive Portal (auch als Walled Garden bezeichnet ) bezeichnet wird.

Ein Captive-Portal wird aus mehreren Gründen verwendet.

  • Sie werden von Universitäten und Organisationen verwendet, um die Anzahl der Geräte, die von einem Konto / einer Person mit dem Wi-Fi-Netzwerk verbunden sind, zu beschränken.
  • Sie werden implementiert, um den Zugriff auf Dienste zu ermöglichen, für die Authentifizierung, Zahlung oder andere gültige Anmeldeinformationen erforderlich sind, deren Einhaltung sowohl der Dienstanbieter als auch der Benutzer vereinbaren.

Es gibt eine Reihe von Gründen und Vorteilen für die Verwendung eines Captive-Portals, aber darum geht es in diesem Beitrag nicht.

Mein Unternehmen hatte ein Captive-Portal implementiert, in das sich Benutzer einloggen mussten, um auf das Internet zugreifen zu können. Unmittelbar nachdem ich mich mit dem drahtlosen Netzwerk verbunden hatte, öffnete mein Browser die Captive-Portalseite und ich musste meinen Benutzernamen und mein Passwort eingeben, um auf das Internet zugreifen zu können. Aber es gab ein Problem.

Die Implementierung eines Captive-Portals ist zwar gut zum Schutz vor unbefugtem Internetzugang, zur Identifizierung des Datenverkehrs und zur Benutzerverwaltung geeignet, verfügt jedoch über eine kontrollierte Verbindung zu jedem Gerät, um sicherzustellen, dass alle Benutzer über einen angemessenen Zugriff verfügen. Ein Captive-Portal kann,

  • Steuern Sie die Anzahl der Terminals pro Benutzer
  • Steuern Sie den Bandbreitenverbrauch und / oder die Download-Geschwindigkeit pro Sitzung
  • Beschränken Sie die Art des zulässigen Datenverkehrs und geben Sie sogar die Dauer des Sitzungszeitlimits an

Aufgrund dieser Einschränkungen wurde mein System vom Netzwerk abgemeldet, wenn ich mein System in den Ruhezustand versetzte oder länger als einige Minuten im Leerlauf blieb. Daher musste ich mich nach Überschreiten der Leerlaufzeit erneut anmelden.

Als Softwareentwickler, der auf meinem System eine ständige Verbindung zum Internet für unterwegs benötigt, musste ich immer wieder meinen Benutzernamen und mein Passwort eingeben, was es sehr umständlich machte.

Was wäre, wenn ich mich nach dem Abmelden mit nur einem Klick auf eine Schaltfläche / ein Symbol auf meinem System beim Captive-Portal anmelden könnte?

Es sollte machbar sein! Es ist nicht erforderlich, einen Benutzernamen und dann ein Passwort einzugeben, das in den meisten Fällen 8 Zeichen lang sein und mindestens einen Großbuchstaben enthalten sollte. Mal sehen, wie wir das machen können.

Implementierung

Selbst wenn Sie ein Anfänger in der Programmierung sind, sollte es ziemlich einfach sein. Ich habe dies in der Programmiersprache Python codiert. Python kann hier heruntergeladen werden, und wir benötigen auch Selenium, das hier heruntergeladen werden kann. Sie können auch pip install selenium(empfohlen).

Schauen wir uns jetzt den Code an.

Nach dem Importieren der erforderlichen Bibliotheken müssen die folgenden Variablen im Code angegeben werden.

Lassen Sie mich das jetzt erklären,

  • Der Website- Link ist nichts anderes als der Link zur Anmeldeseite oder der Link zum Captive-Portal, anhand dessen sich ein Benutzer authentifizieren würde
  • u Benutzername und Passwort geben Sie ein, um sich anzumelden
  • element_for_username, element_for_password, element_for_submit sind die Namen des Elements im HTML-Code der Anmeldeseite

Lassen Sie mich Ihnen zeigen, wie Sie diese finden.

Wie in der obigen Abbildung,

  • Öffnen Sie Inspect Element abhängig von Ihrem Browser.
  • Suchen Sie nach dem HTML-Element und kopieren Sie den Namen des Eingabe-Tags (im obigen Beispiel den Benutzernamen ).
  • Gehen Sie genauso vor, um das HTML-Element für das Kennwort und die Schaltfläche zum Senden herauszufinden .
  • Diese Zeichenfolgen sind der Wert für Ihr element_for_username, element_for_password, element_for_submit.

Die meiste Arbeit ist erledigt!

Hinweis: Ich arbeite unter macOS, daher werde ich den Bot für Safari implementieren. Verwenden Sie für Chrome und andere Chrome über chromedriver.

Kopieren Sie diesen Code mit dem Rest des Codes und speichern Sie ihn als Python (.py-Datei). Führen Sie die Datei mit aus python script.py. Sie werden sehen, dass der Browser die Anmeldeseite automatisch öffnet, die Details eingibt und diese übermittelt. Sie müssen nicht einmal mehr den Benutzernamen und das Passwort eingeben. Ist es nicht cool?

Hinweis: Der vollständige Code ist auf GitHub verfügbar.

Verwenden von Automator in macOS zum Erstellen einer Anwendung (optional)

In macOS können Sie eine Anwendung erstellen, die bestimmten Workflows für jede Aufgabe folgen kann, die wiederholt ausgeführt wird.

In diesem Abschnitt werde ich erklären, wie das obige Python-Skript in eine Automator-App umgewandelt wird. Dadurch kann sich der Benutzer beim Captive-Portal anmelden und einfach auf die Automator-App-Datei klicken.

Schauen wir uns nun die Schritte zur Implementierung an:

Schritt 1: Öffnen Sie den Automator . Erstellen Sie einen neuen Dienst oder eine Datei & g t; Neu > Service

Schritt 2: Fügen Sie eine Aktion " Shell-Skript ausführen " hinzu und setzen Sie Shell: to / bin / bash und Pass input: to als Argumente .

Schritt 3: Fügen Sie nun den Bash-Code wie unter hinzu. Speichern Sie die Datei auf dem Desktop.

Schritt 4: Klicken Sie auf die Datei und Voilà!

Es ist einfach, eine Lösung für ein Problem zu finden, das so einfach ist wie das wiederholte Eingeben von Anmeldeinformationen. Sobald Sie die Problemstellung kennen, ist es einfacher, die Lösung zu finden. Ich hoffe, dieser Beitrag hat Ihnen eine Vorstellung davon gegeben, wie Selenium und Python funktionieren und wie einfach das Erstellen eines Python-Bots ist.