Перейти до

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


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

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

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

 

Выкладываю на суд общественности - 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

Ссылка на сообщение
Поделиться на других сайтах
  В 21.02.2011 в 18:01, AK - 47 сказав:

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

 

Микротик всего лишь сервер доступа. Он сделает то что ему скажет биллинг. В Абилсе - 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, чтобы узнать по какой причине запустился скрипт...

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

Ссылка на сообщение
Поделиться на других сайтах
  В 22.02.2011 в 10:32, hsasha сказав:

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

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

 

Задача:

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

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

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

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

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

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

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

Вхід

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

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

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

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