network manager + автоматизація http реєстрації wifi

Пост буде коротким, але дуже корисним.

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. Буду дуже вдячний за щось подібне для андроїдів.

Джерело: Хабрахабр

0 коментарів

Тільки зареєстровані та авторизовані користувачі можуть залишати коментарі.