Как стать автором
Обновить

network manager + автоматизация http-логина в wifi

Время на прочтение2 мин
Количество просмотров17K
Пост будет коротким, но очень полезным.

abstract: Есть масса wifi-хот-спотов, которые просят сделать какую-нибудь глупость при подключении. Ввести пароль в http-форме, поставить чекбокс «согласен с продажей почки в обмен на интернет» и т. д.

Это задалбывает, особенно, если из wifi периодически выкидывает. В посте предлагается простое решение для автоматизации логина с помощью хуков Network Manager.

Подготовка


Нам надо понять куда кого как посылать, чтобы оно заработало. Ставим firebug или любой другой похожий плагин. Включаем, идём в вкладку 'net', включаем persistent (это важно), логинимся.

Получаем вот такое:



Находим POST (если их несколько — методом перебора и комбинирования), выбираем copy as curl, сохраняем куда-нибудь на будущее.

Дальше находим uuid нашего коннекта — в файле /etc/NetworkManager/system-connections/our_wifi.

Пишем скрипт (всё ниже — от рута) в каталоге /etc/NetworkManager/dispatcher.d/, например, /etc/NetworkManager/dispatcher.d/02-our_wifi-auto

#!/bin/bash
if [ $2 == 'up' -a $CONNECTION_UUID='d2b76508-139e-4073-a921-61a0a7fec9df' ];
then
echo `date` 'logging to our_wifi'>>/var/log/our_wifi
curl 'https://hautdebitmobile.orange.fr:8443/home/logon' -H 'Cookie: JSESSIONID=E559B5201AA5B75B.aws5; JSESSIONID=E559B5201AA5B75B; owalang=en' -H 'DNT: 1' -H 'Host: hautdebitmobile.orange.fr:8443' -H 'Content-Type: application/x-www-form- urlencoded' --data 'username={FKZDOBR&password=ZLEHFR&isCgu=on&hidden_isCgu=&tab=3&code=0&auth=1&restrictedCode=&restrictedProfile=0&restrictedRealm=' 2>&1>>/var/log/our_wifi
fi

Выделенное жирным заменить на актуальные данные.

Делаем chmod +x /etc/NetworkManager/dispatcher.d/02-our_wifi-auto.

Вуаля, wifi начинает себя вести как нормальный — сразу после подключения есть интернеты.

P.S. Буду очень благодарен за что-то подобное для андроидов.

P.p.s. как подсказывают в почте, для московского метро есть такой скрипт: gitorious.org/vmetro-auth/vmetro-auth

Для yota: github.com/esin/Esin-s-scripts/blob/master/sh/yota/yota_open
Теги:
Хабы:
Всего голосов 32: ↑27 и ↓5+22
Комментарии29

Публикации