Pull to refresh

Comments 29

Скрипт будет работать до устаревании сессии в кукисе.
Ок, посмотрим. Не уверен, что она важна — если важна, допишу получение.
Пример для Orange, имхо, не особо актуален. Заменить бы его на пример с wi-fi в московском метро что ли (там ведь тоже какая-то страница с какими-то «новостями» и рекламой вылезает?).
Извините, где укусило, там и починил. Принцип тот же — выцепить нужный запрос, вписать в хук. Для меня больше всего отладки было — найти, как на up для нужного коннекта реагировать, без ложных срабатываний.

Так что нау хау в посте два: «это можно сделать» и строчка с if'ом.
На почту прислали, ссылку добавил в пост.
Ну, что-то как-то совсем просто и без проверок. Такой подход чуть-чуть расстроил меня, amarao.
Самое правильное решение — смотреть на параметр Network Authentication Type у сети, и если есть какой-то тип, то пытаться распарсить html и сделать запрос.
Но, к сожалению, зачастую этот параметр не ставят, тогда можно просто открывать какую-то страницу, и если открывается другая страница, опять же пытаться отправить запрос.
Нафига? Uuid сети гарантирует, что мы «в той» сети, а любые телодвижения сделают подключение медленнее. От двойного логина никто не помер ещё, да и при отключении оранж сбрасывает логин, то есть надо логиниться снова.

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

Затем, что у вас оно будет работать только в одной сети, а, возможно, и только одной точки.
Было бы странное, если бы я свой логин/пароль, купленный за 20€, отправлял в какие-либо другие сети, не? Для того проверка на uuid и стоит.
В Apple'овских устройствах для таких WiFi-сетей появляется переключатель «Автоматически» и оно правда работает, не знаю как, но, видимо, есть какой-то универсальный протокол общения с этим хозяйством, хотелось бы увидеть исследования на эту тему + универсальный скрипт для любых сетей с web-попапом.
На правах инверсного оффтопа.
У меня на одном стареньком аппарате стоит виндафон 7.5. Так вот, я заметил, что каждый раз после перезагрузки и при регистрации его на моем роутере — у него разный MAC, точней, первая (левая) половина MAC статична, а вторая половина генерится рандомно каждый раз при перезагрузке девайса, в результате чего невозможно (по крайней мере простым стандартным способом) выдавать ему конкретый пишнег и каждый раз он ему выдается динамически. Притом, на этом же девайсе, но под андроидом — MAC статичен, но другой, конечно же.

Ну, вот зачем виндафон так делает?!
image

Не надо так!
image
2>&1 >>/var/log/our_wifi

А у вас молоко убежало stderr в лог не попадает.
Нет, не оно (в данном, конкретном случае). Перенаправление «читается» справа налево. Т.е. у вас сначала идет вывод stdout в файл, а потом уже stderr перенаправляется в stdout. Надо делать наоборот:
>>/var/log/our_wifi 2>&1

Или, что даже проще, так (stdout и stderr перенаправит в файл):
&>>/var/log/our_wifi


PS: Пояснение на примере:
$ (echo "stdout" ; echo "stderr" >&2 )
stdout
stderr
$ (echo "stdout" ; echo "stderr" >&2 ) 2>&1 >/dev/null
stderr
$ (echo "stdout" ; echo "stderr" >&2 ) >/dev/null 2>&1
$ (echo "stdout" ; echo "stderr" >&2 ) &>/dev/null

Две последние команды равноценны.
Немного дополню Angel2S2.

При старте шелла создаются 3 дескриптора: stdin, stdout, stderr. Нас интересуют последние 2. Представим такой псевдокод:

stdout = fopen('/dev/tty')
stderr = fopen('/dev/tty')

Когда мы делаем так:

2>&1 >> /tmp/file.log

Происходит что-то такое:

stderr = stdout #stderr -> /dev/tty
stdout = fopen('/tmp/file.log') #stdout -> file

А когда мы делаем так:

>> /tmp/file.log 2>&1

Получается такое:

stdout = fopen('/tmp/file.log') #stdout -> file
stderr = stdout #stderr -> file
Дык, вроде ж stderr перенаправляется в stdout, а stdout добавляется в /var/log/our_wifi… Что-то разве не так или я чего-то недогоняю?
А что, ни у кого у них нет антиксрф токена или любого подобного механизма с уникальным параметром в формах логина?)
Зачем? От кого?

Даже если появится, ну будут два курла вместо одного.
Я бы ещё MAC менял для московского метро :)
А такую штуку можно как то реализовать и на Andorid?
Тоже интересно.
Запуск скрипта можно организовать, например, через Llama (при подключении к определенной wifi сети, выполнить действие — запуск приложения/ярлыка). Осталось только найти программу, которая может запустить скрипт, либо которая может выполнить нужные действия. В свое время не нашел таких (для других целей — у меня при перезагрузке симка переключается в 2G режим, хотел автоматизировать включение 3G режима).
консоль как таковая же в Android есть BusyBox ведь можно поставить, надо будет попробовать на работе.
А то надоедает кнопку нажимать, а страница с авторизаций не всегда выходит, и непонятно в такой момент как в сеть входить, надо что то более надежное.
Я не смог запустить скрипт через Llama, т.к. она выводит список установленных программ. Вручную путь указать нельзя (хотя глубоко не копал). В Tasker вроде можно (то-ли стандартно, то-ли через плагин какой-то), но я его не пробовал, поэтому точно не скажу, может путаю с чем-то. Еще есть Locale.
на 4pda была прога для авторизации в московском метро как раз, так что да, возможно.
Вы сильный археолог. Я сейчас даже не могу сказать, какой именно вопрос, но моя конкретная боль с конкретным оператором во-первых была решена, а во-вторых, более не волнует.
Sign up to leave a comment.

Articles