Перейти до

Доступ к Интернету при отрицательном балансе


Рекомендованные сообщения

Возникла идея - реализовать доступ пользователей к Интернету при нулевом или отрицательном балансе, но на маленькой скорости.

В поиске не нашел... Пришлось самому реализовать :)

 

Выкладываю на суд общественности - stg-2.4-2011-midday.tar.gz

 

Принцип работы:

В stargazer.conf добавлена опция AllowAlt. (Может иметь значения yes или no). Она включает механизм альтернативного доступа.

Если у пользователя отрицательный баланс используются альтернативные скрипты AltOnConnect и AltOnDisconnect, в них можно ограничить скорость и сообщить об этом пользователю. При пополнении баланса Stg переключается на стандартные скрипты OnConnect и OnDisconnect без повторной авторизации пользователя.

Я не силен в плюсах, поэтому ногами не пинайте...

Ссылка на сообщение
Поделиться на других сайтах

Зачем так издеватся?

 

Если у пользователя отрицательный баланс , сработает скрипт OnDisconect. В скрипте (если ipfw table's):

 

 

ipfw table 1 delete IP.
ipfw table 2 add IP.

 

Где для table 1 - шейпится реальная скорость, table 2 - урезанная

 

И наоборот в Onconect

Ссылка на сообщение
Поделиться на других сайтах

МТ такое не потянет?

 

Микротик всего лишь сервер доступа. Он сделает то что ему скажет биллинг. В Абилсе - negative deposit filter. Также можно при недостаточном балансе перекидывать на другой тариф. При определенных знаниях можно почти все, а при достаточных знаниях можно ВСЕ :)

Ссылка на сообщение
Поделиться на других сайтах
Если у пользователя отрицательный баланс , сработает скрипт 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, чтобы узнать по какой причине запустился скрипт...

В моей версии альтернативные скрипты работают только при отрицательном балансе. Поведение биллинга при отключенном или замороженном пользователе не изменено.

Ссылка на сообщение
Поделиться на других сайтах

По моему можно сделать все намного проще, ИМХО.

Буду очень признателен, если подскажете как...

 

Задача:

при нулевом или отрицательном балансе пускать в интернет на маленькой/другой скорости или с другими маршрутами.

Ссылка на сообщение
Поделиться на других сайтах

Создайте аккаунт или войдите в него для комментирования

Вы должны быть пользователем, чтобы оставить комментарий

Создать аккаунт

Зарегистрируйтесь для получения аккаунта. Это просто!

Зарегистрировать аккаунт

Вхід

Уже зарегистрированы? Войдите здесь.

Войти сейчас
  • Зараз на сторінці   0 користувачів

    Немає користувачів, що переглядають цю сторінку.

×
×
  • Створити нове...