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

16758
Shane

Ich versuche, eine Verbindung zu einem WLAN-Netzwerk herzustellen, in dem alle Anfragen geknackt werden und Sie zu einer Seite weitergeleitet werden, auf der Sie den Nutzungsbedingungen zustimmen müssen, bevor Sie sich mit der tatsächlichen Außenwelt verbinden 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 Windows-System. Wie kann ich die Befehlszeile verwenden, um den Nutzungsbedingungen zuzustimmen? 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 brauche ich eine Befehlszeilenlösung zum Senden einer HTTP-POST-Anforderung, die im Wesentlichen auf eine Schaltfläche klickt. Wenn Sie sich später in einem anderen Hotel oder Flughafen in einer solchen Situation befinden, ist es hilfreich zu wissen, wie Sie eine POST-Anfrage mit einem Benutzernamen und einem Kennwort senden.

10
see [this answer](http://superuser.com/questions/73503/dns-323-changing-upnp-update-interval/79269#79269) about using **curl** for a similar [command-line-webpage-button-pusher technique](http://curl.haxx.se/docs/httpscripting.html). i'd post it here but it'd just be a cut-n-paste job; no point in that. if you come up with exact steps to take, post as your own answer. quack quixote vor 14 Jahren 1

2 Antworten auf die Frage

7
ta.speot.is

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

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

**links** will do a better job than **lynx** -- it's a slightly more modern browser. (no really. use **links**. check your local package manager.) quack quixote vor 14 Jahren 5
+1 Links funktioniert einfach super. Wirklich einfach zu bedienen und macht die Arbeit gut. Saif Bechan vor 14 Jahren 0
Letztendlich habe ich diese Antwort verwendet (lynx mit einem separaten Computer heruntergeladen und die Datei über usb übertragen), aber wahrscheinlich lerne ich tatsächlich, wie man curl benutzt. Shane vor 14 Jahren 0
5
dolmen

Sie müssen sich einmal die Quelle des Anmeldeformulars ansehen, um die Namen der Benutzer- und Kennwortfelder herauszufinden. Verwenden Sie zur Authentifizierung alle Seiten umleiten, verwenden Sie eine beliebige URL, um diese Quelle zu erhalten:

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 "over the wire" 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 ...).