Авторизация скриптом
Материал из campus.mephi.ru
(Различия между версиями)
Xakep666 (Обсуждение | вклад) (Новая страница: «'''Метод работает в любой *nix системе, при условии наличия wget с поддержкой ssl. Метод крайне ре...») |
Xakep666 (Обсуждение | вклад) м (Исправлены опечатки и экранирование кавычек) |
||
Строка 13: | Строка 13: | ||
#переменные для работы скрипта | #переменные для работы скрипта | ||
host="https://wifi.mephi.ru" | host="https://wifi.mephi.ru" | ||
- | wget_savecookie="wget -O - -q --no- | + | wget_savecookie="wget -O - -q --no-check-certificate --save-cookies=\"$COOKIE\"" |
wget_loadcookie="wget -O - -q --no-check-certificate --load-cookies=\"$COOKIE\"" | wget_loadcookie="wget -O - -q --no-check-certificate --load-cookies=\"$COOKIE\"" | ||
- | post_data="login=$LOGIN& | + | post_data="login=$LOGIN&password=$PASSWORD&cmd=login" |
- | is_authorized=$($wget_loadcookie $host | grep "value='logout'") | + | is_authorized=$($wget_loadcookie $host | grep \"value=\'logout\'\") |
#если не авторизованы, переменная будет пустой | #если не авторизованы, переменная будет пустой | ||
if [ -z "$is_authorized" ]; then | if [ -z "$is_authorized" ]; then | ||
- | 	login=$($wget_savecookie --post-data="$post_data" $host | grep -oE [0-9]{6}) | + | 	login=$($wget_savecookie --post-data=\"$post_data\" $host | grep -oE [0-9]{6}) |
	$LOGGER Authorized with login $login | 	$LOGGER Authorized with login $login | ||
else | else | ||
Строка 27: | Строка 27: | ||
</pre> | </pre> | ||
- | Его можно выполнять из cron или настроить запуск при подключении к wi-fi | + | Его можно выполнять из cron или настроить запуск при подключении к wi-fi. |
Версия 17:25, 16 февраля 2016
Метод работает в любой *nix системе, при условии наличия wget с поддержкой ssl. Метод крайне рекомендуется применять, если вы используете "домашний" (soho) роутер, так как он дает наибольшую скорость доступа в сравнении с vpn (любого типа) и proxy. Такой роутер при возможности рекомендуется прошить под OpenWRT[1].
Собственно скрипт:
#!/bin/sh #Настройки LOGIN="вашлогин" PASSWORD="вашпароль" LOGGER="echo" #для OpenWRT рекомендуется logger COOKIE="/tmp/acookie" #cookie файл #переменные для работы скрипта host="https://wifi.mephi.ru" wget_savecookie="wget -O - -q --no-check-certificate --save-cookies=\"$COOKIE\"" wget_loadcookie="wget -O - -q --no-check-certificate --load-cookies=\"$COOKIE\"" post_data="login=$LOGIN&password=$PASSWORD&cmd=login" is_authorized=$($wget_loadcookie $host | grep \"value=\'logout\'\") #если не авторизованы, переменная будет пустой if [ -z "$is_authorized" ]; then login=$($wget_savecookie --post-data=\"$post_data\" $host | grep -oE [0-9]{6}) $LOGGER Authorized with login $login else $LOGGER Already authorized fi
Его можно выполнять из cron или настроить запуск при подключении к wi-fi.