оповещение об отсутствии интернета

Обнаруженные вами ошибки в работе программы, предложения по ее улучшению
Dazzler
Сообщения: 66
Зарегистрирован: 30 июл 2011, 02:31
Контактная информация:

оповещение об отсутствии интернета

Сообщение Dazzler »

Добрый день, вот пытаюсь разрешить такой вопрос, к примеру пропал интернет, мало ли у нас такое бывает, особенно летом когда всё перегружено, и нужно чтобы после соединения по wi-fi клиент видел не окно авторизации, а окно с извенениями, что то типа "интернет временно отсутствует по тех причинам, подключитесь попозже", прошу обратить внимание именно при отсутствии интернета не перенаправлять клиентов на loginhotspot.cgi, иначе могут начаться жалобы о том что: "время съело а нета то небыло"
Решение вопроса с помошью squid не приемлемо, так как он ругается по "110 connection time out" уже после авторизации.
Skydreem
Сообщения: 298
Зарегистрирован: 28 май 2011, 14:51
Контактная информация:

Re: оповещение об отсутствии интернета

Сообщение Skydreem »

Разве при отсутствии интернета предлагает окно авторизации?
Аватара пользователя
Dmitry
Администратор
Сообщения: 1073
Зарегистрирован: 25 май 2011, 09:14
Откуда: г. Запорожье, Украина
Контактная информация:

Re: оповещение об отсутствии интернета

Сообщение Dmitry »

когда-то пытался написать какой-то скрипт.
Алгоритм был таков
  • Пингуем например гугл (а лучше несколько разных сайтов)
  • Если пинг неуспешен, в настройках чиллиспота включаем использование "домашней" страницы.
  • На "домашней" странице написано - "Интернета нет, обслуживание приостановлено".
  • Если же пинг успешен, снова выключаем использование домашней страницы, клиенту опять выводится страница авторизации.
Примечания:
  • После включения/выключения домашней страницы чиллиспот нужно перезапускать
  • Как вариант - можно не "включать/выключать" домашнюю страницу, а просто ее менять. На одной написать "интернета нет". на второй - писать какую-то желаемую инфу
.

Однако, как справедливо заметил Skydreem, когда тырнета нет совсем, чиллиспот тупо молчит, и не выводит ни "домашнюю" страницу, ни страницу авторизации.... ЕСЛИ на сервере хотспота не установлен и используется свой локальный сервер днс...
Dazzler
Сообщения: 66
Зарегистрирован: 30 июл 2011, 02:31
Контактная информация:

Re: оповещение об отсутствии интернета

Сообщение Dazzler »

Да дело втом что я поставил bind9, указал в чилли dns, и страница авторизации таки грузится, правда не всегда, что странно.
Мне кажется что решить вопрос можно только вписав на перле функцию в hotspotlogin, которая будет пинговать яндекс, и в "плохом" случае вместо окошка с логином будет перекидывать на окошко с "извенениями". Правда с перлом я никакм пока.
Аватара пользователя
Dmitry
Администратор
Сообщения: 1073
Зарегистрирован: 25 май 2011, 09:14
Откуда: г. Запорожье, Украина
Контактная информация:

Re: оповещение об отсутствии интернета

Сообщение Dmitry »

Dazzler писал(а):Да дело втом что я поставил bind9, указал в чилли dns...
Ну так написал бы об этом в форуме, думаю, и другим было бы интернесно ;)
Dazzler писал(а):страница авторизации таки грузится, правда не всегда, что странно
Можно попробовать в чиллиспоте активировать параметр uamanydns, может быть и поможет в таком случае...
Dazzler писал(а):Мне кажется что решить вопрос можно только вписав на перле функцию в hotspotlogin, которая будет пинговать яндекс, и в "плохом" случае вместо окошка с логином будет перекидывать на окошко с "извенениями". Правда с перлом я никакм пока.
Тут пару замечаний
  • Сама по себе функция ping - не быстрая, и введение ее непосредственно в страницу авторизации на мой взгляд не разумно (клиент просто на "г...но" изойдет, пока дождется окончания проверки.
  • Пинговать один лишь сайт не разумно, у меня был когда-то на сервере скрипт, проверявший интернет, так вот сбои были и на яндекс, и на гугл. Так что надо для надежности стучать в несколько разных.
  • Если взять за основу твой ход мыслей, то тогда наверное нужно функцию пинга вынести в отдельный bash-скрипт, который вызывается кроном и стучится на несколько сайтов. По итогу он в какой-то "промежуточный" файлик просто пишет либо 0 либо 1. А hotspotlogin при запуске читает этот файлик, и либо выводит все как обычно (авторизацию и пр.), либо пишет "Тырнета нет, сорри всем!" ;)
Dazzler
Сообщения: 66
Зарегистрирован: 30 июл 2011, 02:31
Контактная информация:

Re: оповещение об отсутствии интернета

Сообщение Dazzler »

Вот что то тут получилось, Дмитрий как думаешь это будет нормальным решением вопроса?
#!/usr/bin/perl
use Net::Ping;

$pong = Net::Ping->new( $> ? "tcp" : "icmp" );
if ($pong->ping("www.ya.ru"))
{
print "host is alive!\n";
}
else
{
print "host is dead\n";
}
это скриптик проверки кое каких портов яндекса, что если это вставить в hotspotlogin, то есть создать некий условный переход к прорисовке страницы авторизации, а именно открыть зтраничку с "техническими работаи", и выгрузить сам hotspotlogin.
Аватара пользователя
Dmitry
Администратор
Сообщения: 1073
Зарегистрирован: 25 май 2011, 09:14
Откуда: г. Запорожье, Украина
Контактная информация:

Re: оповещение об отсутствии интернета

Сообщение Dmitry »

в принципе, проверку свою можешь попробовать вставить в hotspotlogin в самом начале.
При этом проверку поменять на "нет пинг" (по идее, просто условие начни с !) и в модуле укажи что-то типа

Код: Выделить всё

use Net::Ping;
$pong = Net::Ping->new( $> ? "tcp" : "icmp" );
if (!$pong->ping("www.ya.ru"))
{
print "Content-type: text/html\n\n"; 
print "Твое сообщение, которое хочешь засветить клиентам о том, что тырнета нет";
exit;
}
В итоге, если твой пинг не проходит, клиентам выводится матюк, и по команде exit дальнейшее выполнение скрипта авторизации прекращается. (ну а "рюшики" ему потом сам допишешь :) )
Dazzler
Сообщения: 66
Зарегистрирован: 30 июл 2011, 02:31
Контактная информация:

Re: оповещение об отсутствии интернета

Сообщение Dazzler »

Похоже, что, решение вопроса с "перловским скиптом на пинг", идеально, да и опрос проходит за 1 сек.
Остается только заменить print "твое сообщение" на какой нибудь javascript:window.open()
спасибо
Аватара пользователя
Dmitry
Администратор
Сообщения: 1073
Зарегистрирован: 25 май 2011, 09:14
Откуда: г. Запорожье, Украина
Контактная информация:

Re: оповещение об отсутствии интернета

Сообщение Dmitry »

не за что.
с тебя за это - howto про локальный сервер днс ;)
Dazzler
Сообщения: 66
Зарегистрирован: 30 июл 2011, 02:31
Контактная информация:

Re: оповещение об отсутствии интернета

Сообщение Dazzler »

Да dns настроил я вот по этому мануалу http://ubuntu-faq.blogspot.com/2007/09/ ... u-dns.html
да и то щас все это на этапе теста
а вот скрипт почемуто странно себя ведет, если на сервере пускаю все нормально, если его клиент грузит то никак, мучаюсь (
Ответить

Кто сейчас на конференции

Сейчас этот форум просматривают: нет зарегистрированных пользователей и 1 гость