Pull to refresh

Comments 20

т.е. достаточно рефрешнуть ИП — и отсчет пойдет заново...?
или вручную ввести
Если я правильно понял, не надо даже рефрешить ИП — достаточно открыть open.php в браузере :)
Да. Именно так. Но в принципе так и задумано. Точнее так и была поставлена задача. Данная реализация задумана к примеру для кафе (как я уже писал выше — аналог хотспота Макдональдса). Т.е. после исчерпания лимита связь обрывается и перекидывает на первую страницу. Необходимости в блокировании ИП не было. Но думаю это все достаточно просто реализуется путем бана мак-адреса клиента в IPFW и сбросом банов к примеру в полночь.
Интересно, а в порте FreeBSD под ARM можно такое реализовать? Было бы забавно получить всё в одной коробочке, хоть в том-же DIR-320 :-)
Даже без FreeBSD это можно организовать в одной коробочке. Я не очень понял зачем автор пошёл таким сложным путём.

Шейпинг и переадресация прекрасно реализуются на практически любом роутере с линуксом. Вот только в случае DIR-320 много клиентов не потянет, уж больно слабый там проц.
Да, можно и на DD-WRT, у меня вопрос вырвался в связи с интересом к порту FreeBSD под этот девайс, вообще на *-WRT вытягивает до ~20..25Мбит на WiFi при разделении их не более чем на 10 абонентов. В принципе небольшому кафе или для дома более чем достаточно :-)
а зачем вот это вот всё?:

 $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. :-)
Но с другой стороны тот алгоритм перебора более наглядный.
Т.е. пользователю достаточно 200 раз обновить страницу 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.
Забыл дописать open.php?redir=http://1.1.1.1/open.php
Да, точно. Спасибо. Исправлю.
Хотя бесконечно, да, не выйдет :-(
А как open.php добавляет правила в ipfw? Апач от рута что ли работает?
Нет. Правила добавляются через sudo. Это видно в файле «config.php»
Реализовать самому, без использования готовых решений — это, конечно, полезно в плане приобретения опыта, но все-таки безопаснее и надежнее было бы использовать какую-нибудь CoovaChilli, если уж хочется все это развернуть на базе имеющейся машины.
Я пытался запустить и КуваЧилли, и ЧиллиСпот, но что-то либо я не так делал, что вероятно, но там я наткнулся на такое количество проблем, начиная от того, что пришлось генерировать сертификат для Апача, без SSL не будет запрашивать логин. Потом были проблемы с биллингом. В общем я отказался от этой идеи. Хотя может попробую потом соединить нормальный биллинг и ddwtr, который постоянно советуют.
Sign up to leave a comment.

Articles