Używanie wiersza polecenia do łączenia się z siecią bezprzewodową za pomocą logowania http

12

Próbuję połączyć się z siecią Wi-Fi, która przejmuje wszystkie żądania i przekierowuje do strony, na której musisz zgodzić się na warunki użytkowania, zanim pozwoli ci połączyć się z rzeczywistym światem zewnętrznym. Jest to dość powszechna praktyka i zwykle nie stanowi większego problemu.

Mam jednak komputer z systemem Ubuntu 9.10 bez systemu okienkowego. Jak mogę użyć wiersza poleceń, aby wyrazić zgodę na warunki użytkowania? Nie mam dostępu do Internetu na komputerze, aby pobierać pakiety za pośrednictwem apt-get lub czegoś podobnego. Jasne, mogę wymyślić dowolną liczbę obejść, ale podejrzewam, że istnieje prosty sposób na użycie wgeta, curla lub czegoś takiego.

Zasadniczo potrzebuję rozwiązania wiersza polecenia do wysyłania żądania HTTP POST, zasadniczo klikając przycisk. Na przyszłość pomocne byłoby wiedzieć, jak wysłać żądanie POST, powiedzmy, nazwę użytkownika i hasło, jeśli kiedykolwiek znajdę się w takiej sytuacji w innym hotelu lub na lotnisku.

Shane
źródło
1
zobacz tę odpowiedź na temat używania curl do podobnej techniki popychania przycisków w linii poleceń . zamieściłbym go tutaj, ale byłoby to po prostu cięcie i wklejanie; nie ma w tym sensu. jeśli wymyślisz dokładne kroki, które należy podjąć, opublikuj jako własną odpowiedź.
quack quixote

Odpowiedzi:

7

Zainstaluj Lynx wcześniej, a następnie użyj Lynx z wiersza poleceń. Lynx to przeglądarka tekstowa.

Alternatywnie możesz spróbować użyć wget lub curl, aby uzyskać www.google.com, a następnie przeanalizować zwrócony plik HTTP.

ta.speot.is
źródło
7
linki wykonają lepszą pracę niż ryś - jest to nieco bardziej nowoczesna przeglądarka. (nie, naprawdę. użyj linków . sprawdź lokalnego menedżera pakietów.)
quack quixote,
Linki +1 działają po prostu świetnie. Jest naprawdę łatwy w użyciu i dobrze spełnia swoje zadanie.
Saif Bechan
Tym razem skończyłem na użyciu tej odpowiedzi (ściągnąłem rysia na osobnym komputerze i przesłałem plik przez USB), ale prawdopodobnie nadszedł czas, aby nauczyć się obsługi curl.
Shane,
7

Musisz raz spojrzeć na źródło formularza logowania, aby znaleźć nazwy pól użytkownika i hasła. Ponieważ uwierzytelnianie przekierowuje wszystkie strony, użyj dowolnego adresu URL, aby uzyskać to źródło:

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

Na przykład znajdziesz:

<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>

Innym sposobem jest użycie (na innym komputerze) serwera proxy, takiego jak Fiddler2, aby zobaczyć, co przeglądarka wysyła „przez sieć ”.

Następnie możesz zbudować curlpolecenie do publikowania informacji o formularzu:

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

Jeśli nie masz curl, możesz napisać prostego klienta HTTP w języku, który możesz mieć na platformie (Perl, Lua, Java ...).

dolmen
źródło