Midday1024 0 Опубликовано: 2011-02-21 16:54:36 Share Опубликовано: 2011-02-21 16:54:36 Возникла идея - реализовать доступ пользователей к Интернету при нулевом или отрицательном балансе, но на маленькой скорости. В поиске не нашел... Пришлось самому реализовать Выкладываю на суд общественности - stg-2.4-2011-midday.tar.gz Принцип работы: В stargazer.conf добавлена опция AllowAlt. (Может иметь значения yes или no). Она включает механизм альтернативного доступа. Если у пользователя отрицательный баланс используются альтернативные скрипты AltOnConnect и AltOnDisconnect, в них можно ограничить скорость и сообщить об этом пользователю. При пополнении баланса Stg переключается на стандартные скрипты OnConnect и OnDisconnect без повторной авторизации пользователя. Я не силен в плюсах, поэтому ногами не пинайте... Ссылка на сообщение Поделиться на других сайтах
morfey 82 Опубліковано: 2011-02-21 17:02:47 Share Опубліковано: 2011-02-21 17:02:47 Зачем так издеватся? Если у пользователя отрицательный баланс , сработает скрипт OnDisconect. В скрипте (если ipfw table's): ipfw table 1 delete IP. ipfw table 2 add IP. Где для table 1 - шейпится реальная скорость, table 2 - урезанная И наоборот в Onconect Ссылка на сообщение Поделиться на других сайтах
AK - 47 16 Опубліковано: 2011-02-21 18:01:29 Share Опубліковано: 2011-02-21 18:01:29 МТ такое не потянет? Ссылка на сообщение Поделиться на других сайтах
spaul 69 Опубліковано: 2011-02-21 18:51:30 Share Опубліковано: 2011-02-21 18:51:30 МТ такое не потянет? Микротик всего лишь сервер доступа. Он сделает то что ему скажет биллинг. В Абилсе - negative deposit filter. Также можно при недостаточном балансе перекидывать на другой тариф. При определенных знаниях можно почти все, а при достаточных знаниях можно ВСЕ Ссылка на сообщение Поделиться на других сайтах
Midday1024 0 Опубліковано: 2011-02-22 07:17:40 Автор Share Опубліковано: 2011-02-22 07:17:40 Если у пользователя отрицательный баланс , сработает скрипт OnDisconect. Да, так и есть. Но OnDisconnect срабатывает в том случае если пользователь _на момент авторизации_ имеет доступ к Интернету. Т.е. для пользователя с отрицательным балансом при новой авторизации OnDisconnect не сработает: if (!connected && IsInetable()) { Connect(); } if (connected && !IsInetable()) { if (disabled) Disconnect(false, "disabled"); else if (passive) Disconnect(false, "passive"); else Disconnect(false, "no cash"); } Далее - причина отработки OnDisconnect? В скрипте нужно создавать запрос к DB, чтобы узнать по какой причине запустился скрипт... В моей версии альтернативные скрипты работают только при отрицательном балансе. Поведение биллинга при отключенном или замороженном пользователе не изменено. Ссылка на сообщение Поделиться на других сайтах
morfey 82 Опубліковано: 2011-02-22 10:32:02 Share Опубліковано: 2011-02-22 10:32:02 По моему можно сделать все намного проще, ИМХО. Ссылка на сообщение Поделиться на других сайтах
Midday1024 0 Опубліковано: 2011-02-23 16:11:40 Автор Share Опубліковано: 2011-02-23 16:11:40 По моему можно сделать все намного проще, ИМХО. Буду очень признателен, если подскажете как... Задача: при нулевом или отрицательном балансе пускать в интернет на маленькой/другой скорости или с другими маршрутами. Ссылка на сообщение Поделиться на других сайтах
Рекомендованные сообщения
Создайте аккаунт или войдите в него для комментирования
Вы должны быть пользователем, чтобы оставить комментарий
Создать аккаунт
Зарегистрируйтесь для получения аккаунта. Это просто!
Зарегистрировать аккаунтВхід
Уже зарегистрированы? Войдите здесь.
Войти сейчас