Использование командной строки для подключения к беспроводной сети с логином http

12

Я пытаюсь подключиться к сети Wi-Fi, где он перехватывает все запросы и перенаправляет вас на страницу, где вы должны согласиться с условиями использования, прежде чем он позволит вам подключиться к реальному внешнему миру. Это довольно распространенная практика, и обычно она не представляет большой проблемы.

Тем не менее, у меня есть компьютер с сервером Ubuntu 9.10 без оконной системы. Как я могу использовать командную строку, чтобы согласиться с условиями использования? У меня нет доступа в интернет на компьютере для загрузки пакетов через apt-get или что-то подобное. Конечно, я могу придумать любое количество обходных путей, но я подозреваю, что есть простой способ использовать wget, curl или что-то еще.

По сути, мне нужно решение командной строки для отправки HTTP-запроса POST, по сути, нажав на кнопку. Для дальнейшего использования было бы полезно узнать, как отправить запрос POST, скажем, с именем пользователя и паролем, если я когда-нибудь окажусь в такой ситуации в другом отеле или аэропорту.

Шейн
источник
1
см. этот ответ об использовании curl для аналогичного метода командной строки-webpage-button-pusher . я бы опубликовал это здесь, но это была бы просто работа; нет смысла в этом. если вы придумали точные шаги, которые нужно предпринять, опубликуйте свой ответ.
Квик-кихот

Ответы:

7

Установите Lynx заранее, а затем используйте Lynx из командной строки. Lynx - это текстовый браузер.

Кроме того, вы можете попробовать использовать wget или curl, чтобы получить www.google.com, а затем проанализировать возвращенный файл HTTP.

ta.speot.is
источник
7
ссылки будут работать лучше, чем lynx - это немного более современный браузер. (на самом деле нет. используйте ссылки . проверьте ваш локальный менеджер пакетов.)
Quack Quixote
+1 ссылки работает просто отлично. Действительно прост в использовании и отлично справляется с работой.
Саиф Бечан
В этот раз я использовал этот ответ (скачал lynx с отдельного компьютера и передал файл через usb), но, наверное, пришло время научиться использовать curl.
Шейн
7

Вам нужно будет один раз взглянуть на источник формы входа в систему, чтобы узнать имена полей пользователя и пароля. Поскольку аутентификация перенаправляет все страницы, используйте любой URL, чтобы получить тот источник:

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

Например, вы найдете:

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

Другой способ - использовать (на другом компьютере) прокси-сервер, такой как Fiddler2, чтобы увидеть, что браузер отправляет «по проводам».

Затем вы можете создать curlкоманду для публикации информации о форме:

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

Если у вас его нет curl, можно написать простой HTTP-клиент с языком, который у вас может быть на платформе (Perl, Lua, Java ...).

дольмен
источник