Comments 20
т.е. достаточно рефрешнуть ИП — и отсчет пойдет заново...?
или вручную ввести
или вручную ввести
Если я правильно понял, не надо даже рефрешить ИП — достаточно открыть open.php в браузере :)
Да. Именно так. Но в принципе так и задумано. Точнее так и была поставлена задача. Данная реализация задумана к примеру для кафе (как я уже писал выше — аналог хотспота Макдональдса). Т.е. после исчерпания лимита связь обрывается и перекидывает на первую страницу. Необходимости в блокировании ИП не было. Но думаю это все достаточно просто реализуется путем бана мак-адреса клиента в IPFW и сбросом банов к примеру в полночь.
Интересно, а в порте FreeBSD под ARM можно такое реализовать? Было бы забавно получить всё в одной коробочке, хоть в том-же DIR-320 :-)
dd-wrt вам в помочь
Даже без FreeBSD это можно организовать в одной коробочке. Я не очень понял зачем автор пошёл таким сложным путём.
Шейпинг и переадресация прекрасно реализуются на практически любом роутере с линуксом. Вот только в случае DIR-320 много клиентов не потянет, уж больно слабый там проц.
Шейпинг и переадресация прекрасно реализуются на практически любом роутере с линуксом. Вот только в случае DIR-320 много клиентов не потянет, уж больно слабый там проц.
код доставил
а зачем вот это вот всё?:
может же всё в SQL
$temp = 0;
$sql = 'SELECT rule_num FROM hotspot ORDER BY rule_num';
$res = mysql_query($sql);
if ($res)
{
$t = mysql_fetch_array($res);
if (!$t) $rule_num = RULE_NUM_MIN;
else {
while ($temp = mysql_fetch_array($res))
{
if (($t[0]+1) < $temp[0]) break;
$t = $temp;
}
$rule_num = $t[0]+1
}
} else return false;
может же всё в SQL
SELECT h1.rule_num+1 FROM hotspot h1 LEFT JOIN hotspot h2 ON h1.rule_num=h2.rule_num-1 WHERE h2.rule_num IS NULL LIMIT 1
Это все из-за незнания синтаксиса SQL. :-)
Но с другой стороны тот алгоритм перебора более наглядный.
Но с другой стороны тот алгоритм перебора более наглядный.
www.db-class.org
Тут сейчас неплохие курсы по DB и SQL в частности
Тут сейчас неплохие курсы по DB и SQL в частности
Т.е. пользователю достаточно 200 раз обновить страницу 10.128.1.1/open.php чтобы лишить других возможности пользоваться инетом?
Хотя, по коду, если открыть в браузере напрямую 10.128.1.1/open.php — оно будет бесконечно редиректить само не себя…
Хотя, по коду, если открыть в браузере напрямую 10.128.1.1/open.php — оно будет бесконечно редиректить само не себя…
Ну в принципе да. 200 раз обновить страницу и все, пул исчерпан. Согласен, большое упущение.
Но 10.128.1.1/open.php само на себя не будет редиректить. Само на себя будет редитектить 10.128.1.1/index.php, где 200 раз нажав на кнопку опять таки можно открыть все 200 правил.
Но опять таки лечится путем добавления в таблицу ИП адреса и проверка его наличия в скрипте 10.128.1.1/open.php.
Но 10.128.1.1/open.php само на себя не будет редиректить. Само на себя будет редитектить 10.128.1.1/index.php, где 200 раз нажав на кнопку опять таки можно открыть все 200 правил.
Но опять таки лечится путем добавления в таблицу ИП адреса и проверка его наличия в скрипте 10.128.1.1/open.php.
А как open.php добавляет правила в ipfw? Апач от рута что ли работает?
Реализовать самому, без использования готовых решений — это, конечно, полезно в плане приобретения опыта, но все-таки безопаснее и надежнее было бы использовать какую-нибудь CoovaChilli, если уж хочется все это развернуть на базе имеющейся машины.
Я пытался запустить и КуваЧилли, и ЧиллиСпот, но что-то либо я не так делал, что вероятно, но там я наткнулся на такое количество проблем, начиная от того, что пришлось генерировать сертификат для Апача, без SSL не будет запрашивать логин. Потом были проблемы с биллингом. В общем я отказался от этой идеи. Хотя может попробую потом соединить нормальный биллинг и ddwtr, который постоянно советуют.
Sign up to leave a comment.
Простой HotSpot на FreeBSD