Авторизация скриптом

Материал из campus.mephi.ru

(Различия между версиями)
Перейти к: навигация, поиск
(Новая страница: «'''Метод работает в любой *nix системе, при условии наличия wget с поддержкой ssl. Метод крайне ре...»)
м (Исправлены опечатки и экранирование кавычек)
Строка 13: Строка 13:
#переменные для работы скрипта
#переменные для работы скрипта
host="https://wifi.mephi.ru"
host="https://wifi.mephi.ru"
-
wget_savecookie="wget -O - -q --no-ckeck-certificate --save-cookies=\"$COOKIE\""
+
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&passowrd=$PASSWORD&cmd=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.