10

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

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

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

2 ответа2

7

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

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

5

Вам нужно будет один раз взглянуть на источник формы входа в систему, чтобы узнать имена полей пользователя и пароля. Поскольку аутентификация перенаправляет все страницы, используйте любой 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 ...).

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .