Как программно войти в сеть типа «точка доступа»?

Я часто подключаюсь к сети, которая открыта, но требует использования аутентификации по ключу перед использованием на веб-странице. Можно ли автоматизировать аутентификацию с помощью скрипта?

8
задан 17 February 2011 в 22:55

2 ответа

Какая забавная проблема.

Хотя я уверен, что ответ Ондрюка, вероятно, сработает, я немного против того, чтобы что-то, зависящее от настольного программного обеспечения, управляло доступностью сети.

Я бы предложил вам поиграть с библиотекой Python's Mechanize . Вы можете установить его из репозиториев через:

sudo apt-get install python-mechanize

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

import sys
from mechanize import ParseResponse, urlopen, urljoin

# replace this with the actual login page
# you'll need to do some research
uri = "http://theloginpage.com/"

response = urlopen(uri)
forms = ParseResponse(response, backwards_compat=False)
form = forms[0]
print form
form["username"] = "your username"
form["username"] = "password"

# form.click() returns a mechanize.Request object
# (see HTMLForm.click.__doc__ if you want to use only the forms support, and
# not the rest of mechanize)
print urlopen(form.click()).read()

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

Тогда вам просто нужно привязать это к сетевой системе, чтобы она вызывалась. Загрузка из /etc/network/if-up.d должна работать, но я предлагаю вам поставить код перед префиксом, чтобы убедиться, что вы действительно находитесь в той точке доступа, для которой работает ваш логин.

0
ответ дан 17 February 2011 в 22:55

Другие вопросы по тегам:

Похожие вопросы: