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

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

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

Сообщение Dmitry »

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

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

Сообщение Dmitry »

гуглеж показал во первых, что этот самый net:ping для работы с icmp должен выполняться либо root-ом либо с setuid рута
то есть, попробуй hotspotlogin-у выставить setuid

ну а еще в одном форуме человек написал, что нагуглил что-то тут
http://search.cpan.org/~colinm/Net-Ping ... xternal.pm
и вроде как это (альтернативный модуль) стало решением его проблемы.
Dazzler
Сообщения: 66
Зарегистрирован: 30 июл 2011, 02:31
Контактная информация:

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

Сообщение Dazzler »

Да таких примеров я перебрал тонны, половина из них не рабочая, а этот пример тоже не запускается, там интерпритатор матерится на:
use Net::Ping::External qw(ping);, судя по всему решения только 2,
1. реализовать ваш пример с кроном (подскажите как сделать так чтобы крон стартовал скрипт каждые 5 мин)
2. Надоедать разработчикам чиллиспота (хотя там на форуме уже регистрацию прикрыли), чтоб дали дельный совет либо учли этот нюанс в следующем обновлении.
Дело в том что когда клиент активизирует hotspotlogin там наверное куча ограничений в часности и на работу с файлами.
Даже после того, как функция exec/system из hotspotlogin пускала скрипт,(он должен был записать в файл) запись в файл не выполнялась вообще, в то время как файл запущенный руками все делал как надо.

кстати, хотел Вас спросить, немножко не по теме, вот ссылка http://www.chillispot.info/chilliforum/ ... -page.html
это реально можно реализовать или все это пустая болтовня ?
Аватара пользователя
Dmitry
Администратор
Сообщения: 1073
Зарегистрирован: 25 май 2011, 09:14
Откуда: г. Запорожье, Украина
Контактная информация:

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

Сообщение Dmitry »

Dazzler писал(а):Да таких примеров я перебрал тонны, половина из них не рабочая, а этот пример тоже не запускается, там интерпритатор матерится на:
use Net::Ping::External qw(ping);,
Все правильно! Этот модуль не входит в число тех, что устанавливаются с перлом по умолчанию. Его нужно установить дополнительно командой:

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

sudo apt-get install libnet-ping-external-perl 
Dazzler писал(а):судя по всему решения только 2,
1. реализовать ваш пример с кроном (подскажите как сделать так чтобы крон стартовал скрипт каждые 5 мин)
В принципе, можно и чаще, например раз в минуту или раз в две минуты, сервер это не нагрузит...
Допустим, файл скрипта вы назвали ping_test.sh и разместили его в папку /root. В таком случае в файл /etc/crontab нужно добавить такую строку:

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

*/2 * * * * root /root/ping_test.sh
Она будет запускать скрипт каждые 2 минуты. ВАЖНО - последней строкой в файле расписания должна быть пустая строка (не забудьте нажать Enrter в конце последней строки с командами). Второе ВАЖНО - файл ping_test.sh должен быть исполняемым (chmod +x ping_test.sh).
Dazzler писал(а):2. Надоедать разработчикам чиллиспота (хотя там на форуме уже регистрацию прикрыли), чтоб дали дельный совет либо учли этот нюанс в следующем обновлении.
Вот тут уж точно ничего не светит. именно сам чиллиспот уже заброшен авторами, и никаких ему "свежих обновлений" уже не светит.
Аватара пользователя
Dmitry
Администратор
Сообщения: 1073
Зарегистрирован: 25 май 2011, 09:14
Откуда: г. Запорожье, Украина
Контактная информация:

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

Сообщение Dmitry »

Скрипт по адресу:
http://wifi-hotspot.zp.ua/cgi-bin/12.cgi
с использованием Net::Ping::External

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

#!/usr/bin/perl

print "Content-type: text/html \n\n";
print "You need some wait... <br>";
print "1. First test - www.google.com<br>";
use Net::Ping::External qw(ping);
my $alive = ping(host=>"www.google.com");
if ($alive == 1) {
print "Ok!";
} else {
print "Bad";
}

print "<br>2. Second test - non existing URL www.goo_gle.com<br>";
use Net::Ping::External qw(ping);
my $alive = ping(host=>"www.goo_gle.com");
if ($alive == 1) {
print "Ok!";
} else {
print "Bad";
}
Dazzler
Сообщения: 66
Зарегистрирован: 30 июл 2011, 02:31
Контактная информация:

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

Сообщение Dazzler »

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

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

Сообщение Dmitry »

Dazzler писал(а):Да dns настроил я вот по этому мануалу http://ubuntu-faq.blogspot.com/2007/09/ ... u-dns.html
а у чиллиспота в таком случае какие адреса серверов днс прописывал? 127.0.0.1?...
Аватара пользователя
Dmitry
Администратор
Сообщения: 1073
Зарегистрирован: 25 май 2011, 09:14
Откуда: г. Запорожье, Украина
Контактная информация:

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

Сообщение Dmitry »

Итак, в продолжение телефонных разговоров....

Ставим dnsmasq

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

sudo apt-get install dnsmasq
Настраиваем ( :D ) dnsmasq

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

sudo mcedit /etc/dnsmasq.conf
в данном файле собственно, должно быть указано два параметра

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

interface=tun0
no-dhcp-interface=tun0
(По большому счету, можно просто в файле вообще удалитьвсю чехарду, а вписать только две вышеприведенные строчки :) )
Рулим конфиг чиллиспота

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

sudo mcedit /etc/chilli.conf
в нем принудительно указываем адрес сервера днс (достаточно одного, первого)

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

dns1 192.168.182.1
И последнее - рулим файервол (как эго потом "применять" - смотрим в инструкцию)
В нем нужно добавить одно новое правило в раздел LAN интерфейса (вторая половина):

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

$IPTABLES -A INPUT -p udp -m udp --dport 53 -j ACCEPT
Все. Клиентам выдается в качестве сервера ДНС сервер хотспота.
Roman
Сообщения: 78
Зарегистрирован: 03 дек 2011, 00:25
Откуда: Харьковская область
Контактная информация:

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

Сообщение Roman »

С праздниками всех!
У меня, кстати, не пошел dnsmasq.
Всё сделал по выше описаному.
Сервер действительно начал выдавать свой DNS, но при этом на нём пропал интернет, как и у всех остальных.
Пока вернул всё назад.
И еще столкнулся с проблемой - после перезагрузки часто бывает не запускается интерфейс tun0, но судя по всему и WAN тоже не работает, хотя есть в списке, до сервера нельзя достучаться ни с какой стороны.
С сервером часто работаю удалённо, когда перезагружаю, рискую получить неработающий сервер, точнее не отвечающий ни на какие запросы. Приходится ехать на место, где сервер и еще раз перезагружать, тогда всё запускается. Такое бывает часто, и признаком того, что север не работает - по кооманде ifconfig видно что интерфейса tun0 нет.
Как с этим бороться?
Аватара пользователя
Dmitry
Администратор
Сообщения: 1073
Зарегистрирован: 25 май 2011, 09:14
Откуда: г. Запорожье, Украина
Контактная информация:

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

Сообщение Dmitry »

Roman писал(а):Пока вернул всё назад.
Посмотрю еще, поэкспериментирую.
Roman писал(а):Приходится ехать на место, где сервер и еще раз перезагружать, тогда всё запускается. Такое бывает часто, и признаком того, что север не работает - по кооманде ifconfig видно что интерфейса tun0 нет.
а в таком случае, если перезапустить в консоли сеть командой

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

sudo /etc/init.d/networking restart
не помогает?
(Просто можно тогда попробовать скрипт проверки дополнить проверкой интерфейса tun0 и в случае его отсутствия - перезапуском)
Ответить

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

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