Verwenden der Befehlszeile zum Herstellen einer Verbindung zu einem drahtlosen Netzwerk mit einem http-Login

12

Ich versuche, eine Verbindung zu einem WLAN-Netzwerk herzustellen, in dem alle Anfragen missbraucht und Sie auf eine Seite weitergeleitet werden, auf der Sie Nutzungsbedingungen zustimmen müssen, bevor Sie eine Verbindung zur tatsächlichen Außenwelt herstellen können. Dies ist eine ziemlich übliche Praxis und stellt normalerweise kein großes Problem dar.

Ich habe jedoch einen Computer mit Ubuntu 9.10-Server ohne Fenstersystem. Wie kann ich über die Befehlszeile den Nutzungsbedingungen zustimmen? Ich habe keinen Internetzugang auf dem Computer, um Pakete über apt-get oder ähnliches herunterzuladen. Sicher, ich kann mir eine beliebige Anzahl von Problemumgehungen vorstellen, aber ich vermute, dass es eine einfache Möglichkeit gibt, wget oder curl oder so etwas zu verwenden.

Grundsätzlich benötige ich eine Befehlszeilenlösung zum Senden einer HTTP-POST-Anforderung, indem ich im Wesentlichen auf eine Schaltfläche klicke. Zum späteren Nachschlagen wäre es hilfreich zu wissen, wie eine POST-Anfrage beispielsweise mit einem Benutzernamen und einem Passwort gesendet wird, wenn ich mich jemals in einer anderen Situation an einem anderen Hotel oder Flughafen befinde.

Shane
quelle
1
In dieser Antwort zur Verwendung von Curl finden Sie eine ähnliche Befehlszeilen-Webseiten-Button-Drücker-Technik . Ich würde es hier posten, aber es wäre nur ein Job zum Ausschneiden und Einfügen. Das hat keinen Sinn. Wenn Sie genaue Schritte finden, geben Sie diese als Ihre eigene Antwort an.
Quacksalber Quijote

Antworten:

7

Installieren Sie Lynx im Voraus und verwenden Sie Lynx über die Befehlszeile. Lynx ist ein textbasierter Browser.

Alternativ können Sie versuchen, www.google.com mit wget oder curl abzurufen und anschließend die zurückgegebene HTTP-Datei zu analysieren.

ta.speot.is
quelle
7
Links machen einen besseren Job als Luchs - es ist ein etwas moderner Browser. (Nein wirklich. Verwenden Sie Links . Überprüfen Sie Ihren lokalen Paketmanager.)
Quacksalber Quixote
+1 Links funktionieren einfach super. Wirklich einfach zu bedienen und macht den Job gut.
Saif Bechan
Diesmal habe ich diese Antwort verwendet (lynx mit einem separaten Computer heruntergeladen und die Datei über USB übertragen), aber es ist wahrscheinlich an der Zeit, dass ich tatsächlich lerne, wie man Curl benutzt.
Shane
7

Sie müssen einmal in der Quelle des Anmeldeformulars nachsehen , um die Namen der Benutzer- und Kennwortfelder herauszufinden. Verwenden Sie bei der Authentifizierung aller Seiten eine beliebige URL, um diese Quelle abzurufen:

curl http://www.google.com > login.html

Zum Beispiel finden Sie:

<form method="POST" action="http://my-public-provider.com/agree.php">
    <input type="checkbox" name="agree" value="yes">I agree
    <input type="submit" name="push" value="Send">
</form>

Eine andere Möglichkeit besteht darin, (auf einem anderen Computer) einen Proxy wie Fiddler2 zu verwenden, um zu sehen, was vom Browser "über das Kabel " gesendet wird.

Dann können Sie Ihren curlBefehl erstellen , um Ihre Formularinformationen zu veröffentlichen:

curl -d "agree=yes&push=Send" http://my-public-provider.com/agree.php

Wenn Sie nicht haben curl, ist es möglich, einen einfachen HTTP-Client mit einer Sprache zu schreiben, die Sie möglicherweise auf der Plattform haben (Perl, Lua, Java ...).

Dolmen
quelle