BiTel

Форум BiTel
bgbilling.ru     docs.bitel.ru     wiki.bitel.ru     dbinfo.bitel.ru     bgcrm.ru     billing.bitel.ru     bitel.ru    
Текущее время: 14 май 2024, 03:09

Часовой пояс: UTC + 5 часов [ Летнее время ]




Начать новую тему Ответить на тему  [ Сообщений: 68 ]  На страницу 1, 2, 3  След.
Автор Сообщение
СообщениеДобавлено: 16 апр 2009, 05:28 
Не в сети

Зарегистрирован: 16 апр 2009, 00:12
Сообщения: 62
Карма: 0
Доброе время суток, уважаемые Гуру.
Имеется в процессе тестирования БГБ с модулем DialUP, Установленный на FreeBSD 6.4(кстати, запустился без проблем) и NAS Mikrotik 4.02 он же шлюз с внешним миром.
Так же имеется скрипт-наследие от предыдущего, не прошедшего тестирование, биллинга /usr/local/bin/mikrotik_rfw.sh, который умеет принять что-то для микротика, подцепится к нему по SSH и порулить им
Код:
#!/bin/sh
ssh admin-admin-bla-bla-bla@192.168.x.x "$*"

Суть задачи в следующем: как
1. Выполнить этот внешний скрипт из БГБ и
2. Передать этому скрипту некие параметры: к примеру UserID, GroupID, ID текущего тарифа, командную строку для микротика /ip firewall....мби какие-либо текстовые параметры договора?
3. Понятно, как вышеописанное привязать/выполнить при (событие модуля VPN=>Radius-аутентификация) входе юзера. Возможно ли аналогичные действия выполнить при выходе/потере юзера?
Заранее благодарен.
ЗЫ.Доки, Вики, форум рыл, толкового решения не встретил


Вернуться к началу
 Профиль  
 
 Заголовок сообщения:
СообщениеДобавлено: 16 апр 2009, 12:38 
Не в сети
Разработчик

Зарегистрирован: 27 ноя 2006, 20:36
Сообщения: 5715
Карма: 93
События "Выход юзера" у нас нет пока. Что скрипт-то делает? Для сброса юзера например, можно вызывать скрипт..


Вернуться к началу
 Профиль  
 
СообщениеДобавлено: 16 апр 2009, 17:15 
Не в сети

Зарегистрирован: 16 апр 2009, 00:12
Сообщения: 62
Карма: 0
Chaos писал(а):
2. Передать этому скрипту некие параметры: к примеру UserID, GroupID, ID текущего тарифа, командную строку для микротика /ip firewall....мби какие-либо текстовые параметры договора?
Присвоенный IP еще бы крайне желательно.
Администратор писал(а):
События "Выход юзера" у нас нет пока.
А жаль, потому как резко сокращает функционал всей системы. Ведь это несколько строк кода. Может стоит добавить? К тому же, какой смысл регистрить событие "Вход", если нельзя зарегистрировать "Выход"?! Прямо полумера получается.
Администратор писал(а):
Что скрипт-то делает?
Общая идея такова: из БГБ передать при логон/логоф пользователей параметры внешнему скрипту, который передаст параметры микротишному скрипту. Тот в свою очередь раскидывает вновь залогинившихя, в зависимости от переданных параметров, на разные аплинки, режет им внешнюю скорость, ведет учет общей и израсходованной полосы всех аплинков и т.д. Но это потом... Сейчас нужно передать параметры юзера/договора в момент его логон/логоф.
Может у кого-то есть уже нечто подобное реализовано другими методами? Было бы инетересно узнать.
Администратор писал(а):
Для сброса юзера например, можно вызывать скрипт..
По дропу зависших соединений имеете ввиду?


Последний раз редактировалось Chaos 16 апр 2009, 17:30, всего редактировалось 2 раз(а).

Вернуться к началу
 Профиль  
 
 Заголовок сообщения:
СообщениеДобавлено: 16 апр 2009, 17:21 
Не в сети
Разработчик

Зарегистрирован: 27 ноя 2006, 20:36
Сообщения: 5715
Карма: 93
Цитата:
По дропу зависших соединений имеете ввиду?

Скорее активных, у которых деньги кончились или иная причина разрыва.


Вернуться к началу
 Профиль  
 
 Заголовок сообщения:
СообщениеДобавлено: 16 апр 2009, 17:48 
Не в сети

Зарегистрирован: 16 апр 2009, 00:12
Сообщения: 62
Карма: 0
Событие перехода границы баланса встречал, про иные причины разрыва не понял.


Вернуться к началу
 Профиль  
 
 Заголовок сообщения:
СообщениеДобавлено: 17 апр 2009, 13:32 
Не в сети
Разработчик

Зарегистрирован: 27 ноя 2006, 20:36
Сообщения: 5715
Карма: 93
Возможно использвание скрипта для разрыва соединения. В вашем случае это не подойдет, т.к. при добровольном выходе клиента он не будет работать. В обещем случае события "Завершение соединения" нет.


Вернуться к началу
 Профиль  
 
 Заголовок сообщения:
СообщениеДобавлено: 17 апр 2009, 14:43 
Не в сети

Зарегистрирован: 16 апр 2009, 00:12
Сообщения: 62
Карма: 0
Понятно... давайте пока забъем на логоф, а остановимся на первых двух вопросах, разложив их:
1.1 Синтаксис получения вышеназванных переменных.
1.2. Синтаксис вызова внешнего скрипта.
1.3 Скармливание этих переменных внешнему скрипту.
Либо
2.1 Синтаксис получения вышеназванных переменных.
2.2 Синтаксис работы с SSH-консолью с подстановкой IP , логина, пароля микротика.
2.3 Скармливание этих переменных консоли.
Что-то вроде того, что описано здесь http://www.bgbilling.ru/v4.5/doc/ch09s11s12.html но чтобы без использования модуля IPN
В целом биллинг очень понравился. Устрило бы даже возможность использования скрипта по расписанию, задачей которого бы было: просмотр активных соединений, занесение их списка в массив, сравнивание массива с массивом 1-3 часовой давности, параметры отсутствующих соединений посылать на МТ. В случае возможности решения этих задач расчитываем приобрести. Спасибо за поддержку.


Вернуться к началу
 Профиль  
 
 Заголовок сообщения:
СообщениеДобавлено: 17 апр 2009, 17:01 
Не в сети
Разработчик

Зарегистрирован: 27 ноя 2006, 20:36
Сообщения: 5715
Карма: 93
Может проще событие логоф добавить? А то что-то грозный алгоритм выходит.. Только в WiKi опишите, как вы это применили. Для 4.6 на следующей недели мог бы сделать..


Вернуться к началу
 Профиль  
 
 Заголовок сообщения:
СообщениеДобавлено: 17 апр 2009, 19:13 
Не в сети

Зарегистрирован: 17 апр 2009, 18:57
Сообщения: 28
Карма: 0
Поясню я тогда..)
задача очень проста - по событию логона или логоффа необходимо выполнить несколько арифметических и логических проверок и поместить абонента в некоторый ADRESS_LIST на NAS (в нашем случае Mikrotik).

даже если будет событие логофф, абсолютно не понятен синтаксис скрипта с помощью которого можно передать адрес абонента и имя списка NAS-у.

Пожалуйста, ткните носом в нужное место справки - вроде все прочитано, а как сделать непонятно..
алгоритм применения опишу после ответа, чтобы Вас не путать )


Вернуться к началу
 Профиль  
 
 Заголовок сообщения:
СообщениеДобавлено: 18 апр 2009, 18:50 
Не в сети
Клиент

Зарегистрирован: 12 фев 2008, 18:10
Сообщения: 3951
Карма: 249
перечитал несколько раз и так и не понял зачем нужно событие логаута ...


Вернуться к началу
 Профиль  
 
 Заголовок сообщения:
СообщениеДобавлено: 18 апр 2009, 19:20 
Не в сети

Зарегистрирован: 16 апр 2009, 00:12
Сообщения: 62
Карма: 0
Для учета микротиком израсходованной полосы каждого аплика. Пожалуйста, просто покажите, как вызвать внешний скрипт из скриптов поведения , передав ему переменные в качестве параметров. Либо как работать с SSH из скриптов поведения. Как получить переменные договора, вызвавшего этот скрипт. В случае успешной реализации задуманного мы готовы разместить описание реализованного в вики.


Вернуться к началу
 Профиль  
 
 Заголовок сообщения:
СообщениеДобавлено: 20 апр 2009, 12:35 
Не в сети
Разработчик

Зарегистрирован: 27 ноя 2006, 20:36
Сообщения: 5715
Карма: 93
Цитата:
Пожалуйста, просто покажите, как вызвать внешний скрипт из скриптов поведения , передав ему переменные в качестве параметров.

http://www.google.ru/search?q=java+exec ... al+program
Runtime.getRuntime().exec( .... );

Только учитывайте, что порождение процессов ОС на каждое действие негативно скажется на скорости.

Цитата:
Либо как работать с SSH из скриптов поведения.


SSHSession, см. примеры тут например: http://wiki.bgbilling.ru/index.php/%D0% ... _BeanShell

Цитата:
Как получить переменные договора, вызвавшего этот скрипт.

Класс работы с праметрами договора (если это имелось в виду.)
http://www.bgbilling.ru/v4.5/javadoc/bi ... Utils.html


Вернуться к началу
 Профиль  
 
 Заголовок сообщения:
СообщениеДобавлено: 20 апр 2009, 13:14 
Не в сети
Клиент

Зарегистрирован: 12 фев 2008, 18:10
Сообщения: 3951
Карма: 249
Chaos писал(а):
Для учета микротиком израсходованной полосы каждого аплика.

т.е. чтобы учесть какую полосу израсходовал пользователь в период своего сидения в инете?


Вернуться к началу
 Профиль  
 
 Заголовок сообщения:
СообщениеДобавлено: 20 апр 2009, 14:19 
Не в сети

Зарегистрирован: 17 апр 2009, 18:57
Сообщения: 28
Карма: 0
2 Администратор
Спасибо, будем пробовать!

2 Shark

Задача динамической балансировки нагрузки аплинков.

Имеется N аплинков, каждый полосой Pi.
Каждому аплинку сопоставляется список юзеров (адресов), которые на данный момент работают через него. (другие методы баллансировки не рассматриваются).
При подключении юзера, шлюзу передается его адрес и требуемая полоса. Шлюз выполняет расчет коэффициентов нагруженности каналов (как отношение суммарной полосы юзеров в списке канала к полосе канала) и добавляет адрес вновь прибывшего в список, соответствующий наименее нагруженному каналу. (и создает соответствующее правило ограничения скорости - фактически, выделяет полосу юзеру).
При отключении юзера производится его удаление из списка, т.е. освобождение полосы.

Можно также учитывать реальную нагрузку, которую создает пользователь в ЧНН, с помощью поправочного коэффициента к его полосе.

При падении любого канала производится распределение пользователей из его списка по другим каналам.

Метод предусматривает любые возможности для управления полосой юзеров (например, деление всей свободной полосы поровну между активными юзерами ночью - как делают спутниковые провайдеры для повышения коэффициента использования).

Задумка примерно такая, что получится с реализацией будет видно...


Вернуться к началу
 Профиль  
 
 Заголовок сообщения:
СообщениеДобавлено: 20 апр 2009, 14:34 
Не в сети

Зарегистрирован: 16 апр 2009, 00:12
Сообщения: 62
Карма: 0
Мне остается только добавить, что с описанной позиции видно, как важность события логофа недооценена. Реализация бы намного упростилась при его наличии. Просьба к разработчикам: может стоит его добавить?!


Вернуться к началу
 Профиль  
 
 Заголовок сообщения:
СообщениеДобавлено: 22 апр 2009, 05:55 
Не в сети

Зарегистрирован: 16 апр 2009, 00:12
Сообщения: 62
Карма: 0
Администратор писал(а):
Цитата:
Либо как работать с SSH из скриптов поведения.


SSHSession, см. примеры тут например: http://wiki.bgbilling.ru/index.php/%D0% ... _BeanShell

За намек еще раз благодарен, но только почему-то я не могу найти здесь http://www.bgbilling.ru/v4.5/javadoc/in ... Utils.html описания этого класса bitel.billing.server.util.ssh.*; и соответственно описания работы с ним. Решив, что его просто не добавили в документацию, решил поэксперемнтировать с простейшим куском
Код:
import java.util.*;
import java.util.regex.*;
import ru.bitel.bgbilling.common.*;
import bitel.billing.common.module.ipn.*;
import bitel.billing.server.ipn.bean.*;
import bitel.billing.server.dialup.bean.*;
import bitel.billing.server.util.ssh.*;
 
 
        host = ( "192.x.х.х" );
        port = ( "22" );
        login = ( "bla-bla" );
        pswd = ( "admin-admin" );
          try
      {           
      session = new SSHSessionExec( host, port, login, pswd );
      session.connect();
       {
       session.command( "ip firewall address-list print" );
      }
   }
   finally
   {
      if ( session != null )
      {
       session.disconnect();
      }
   }

Цель была простая: получить в логах Микротика инфу о входе пользователя bla-bla.
Вместо этого в логах выполнения скрипта получаю
Код:
GENERATE_TIME: 22.04.09 03:03:16
EXECUTION_STOP_TIME: 22.04.09 03:03:16
PROCESS_TIME: 33

OUT:


ERROR:


EXCEPTIONS:
Sourced file: Function [id:2; title:test] : Constructor error: Can't find constructor: bitel.billing.server.util.ssh.SSHSessionExec( java.lang.String, java.lang.String, java.lang.String, java.lang.String ) in class: bitel.billing.server.util.ssh.SSHSessionExecSourced file: Function [id:2; title:test] : Constructor error: Can't find constructor: bitel.billing.server.util.ssh.SSHSessionExec( java.lang.String, java.lang.String, java.lang.String, java.lang.String ) in class: bitel.billing.server.util.ssh.SSHSessionExec : at Line: 27 : in file: Function [id:2; title:test] : new SSHSessionExec ( host , port , login , pswd )

   at bsh.BSHAllocationExpression.constructObject(Unknown Source)
   at bsh.BSHAllocationExpression.objectAllocation(Unknown Source)
   at bsh.BSHAllocationExpression.eval(Unknown Source)
   at bsh.BSHPrimaryExpression.eval(Unknown Source)
   at bsh.BSHPrimaryExpression.eval(Unknown Source)
   at bsh.BSHAssignment.eval(Unknown Source)
   at bsh.BSHBlock.evalBlock(Unknown Source)
   at bsh.BSHBlock.eval(Unknown Source)
   at bsh.BSHBlock.eval(Unknown Source)
   at bsh.BSHTryStatement.eval(Unknown Source)
   at bsh.Interpreter.eval(Unknown Source)
   at ru.bitel.bgbilling.kernel.script.server.bean.ScriptInstance.eval(ScriptInstance.java:310)
   at bitel.billing.server.script.bean.ScriptMachine$SimpleScriptRunner.runScript(ScriptMachine.java:60)
   at bitel.billing.server.script.bean.ScriptMachine.runScript(ScriptMachine.java:128)
   at bitel.billing.server.script.bean.event.EventProcessor.processEvent(EventProcessor.java:238)
   at bitel.billing.server.processor.DefaultProcessor.standartAuth(DefaultProcessor.java:204)
   at bitel.billing.server.processor.dialup.DialUpProcessor.authenticationProcess(DialUpProcessor.java:127)
   at bitel.billing.server.radius.RadiusRequestThread.processRequest(RadiusRequestThread.java:180)
   at bitel.billing.server.radius.RadiusRequestThread.run(RadiusRequestThread.java:79)
   at java.util.concurrent.ThreadPoolExecutor$Worker.runTask(ThreadPoolExecutor.java:885)
   at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:907)
   at java.lang.Thread.run(Thread.java:619)
   at ru.bitel.common.worker.WorkerThread.run(WorkerThread.java:40)


WARNINGS:

Подскажите, куда копать?


Вернуться к началу
 Профиль  
 
 Заголовок сообщения:
СообщениеДобавлено: 22 апр 2009, 20:19 
Не в сети
Разработчик

Зарегистрирован: 08 ноя 2007, 01:05
Сообщения: 8343
Откуда: Уфа
Карма: 238
порт должен быть числом..без всяких кавычек


Вернуться к началу
 Профиль  
 
 Заголовок сообщения:
СообщениеДобавлено: 23 апр 2009, 04:14 
Не в сети

Зарегистрирован: 16 апр 2009, 00:12
Сообщения: 62
Карма: 0
Теперь вот это
Код:
Contract ppuser123
GENERATE_TIME: 23.04.09 01:17:43
EXECUTION_STOP_TIME: 23.04.09 01:17:43
PROCESS_TIME: 90

OUT:


ERROR:


EXCEPTIONS:
Sourced file: Function [id:2; title:test] : Method Invocation session.disconnectSourced file: Function [id:2; title:test] : Method Invocation session.disconnect : at Line: 32 : in file: Function [id:2; title:test] : session .disconnect ( )

Target exception: java.lang.NoClassDefFoundError: com/jcraft/jsch/Session

        at bsh.BSHMethodInvocation.eval(Unknown Source)
        at bsh.BSHPrimaryExpression.eval(Unknown Source)
        at bsh.BSHPrimaryExpression.eval(Unknown Source)
        at bsh.BSHBlock.evalBlock(Unknown Source)
        at bsh.BSHBlock.eval(Unknown Source)
        at bsh.BSHBlock.eval(Unknown Source)
        at bsh.BSHIfStatement.eval(Unknown Source)
        at bsh.BSHBlock.evalBlock(Unknown Source)
        at bsh.BSHBlock.eval(Unknown Source)
        at bsh.BSHBlock.eval(Unknown Source)
        at bsh.BSHTryStatement.eval(Unknown Source)
        at bsh.Interpreter.eval(Unknown Source)
        at ru.bitel.bgbilling.kernel.script.server.bean.ScriptInstance.eval(ScriptInstance.java:310)
        at bitel.billing.server.script.bean.ScriptMachine$SimpleScriptRunner.runScript(ScriptMachine.java:60)
        at bitel.billing.server.script.bean.ScriptMachine.runScript(ScriptMachine.java:128)
        at bitel.billing.server.script.bean.event.EventProcessor.processEvent(EventProcessor.java:238)
        at bitel.billing.server.processor.DefaultProcessor.standartAuth(DefaultProcessor.java:204)
        at bitel.billing.server.processor.dialup.DialUpProcessor.authenticationProcess(DialUpProcessor.java:127)
        at bitel.billing.server.radius.RadiusRequestThread.processRequest(RadiusRequestThread.java:180)
        at bitel.billing.server.radius.RadiusRequestThread.run(RadiusRequestThread.java:79)
        at java.util.concurrent.ThreadPoolExecutor$Worker.runTask(ThreadPoolExecutor.java:885)
        at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:907)
        at java.lang.Thread.run(Thread.java:619)
        at ru.bitel.common.worker.WorkerThread.run(WorkerThread.java:40)


WARNINGS:

PS. Может стоит выложить в доках описание класса и пример минимального кода для работы с ним? Очень нужно в сжатые сроки доработать, настроить, обкатать связку, заплатить Вам денюжек и запустить, чтоб само работало и юзеры разбрасывались на аплики по уму.


Вернуться к началу
 Профиль  
 
 Заголовок сообщения:
СообщениеДобавлено: 23 апр 2009, 11:40 
Не в сети
Разработчик

Зарегистрирован: 27 ноя 2006, 20:36
Сообщения: 5715
Карма: 93
jsch.jar есть в BGBillingServer/lib? Под какой ОС сервер?


Вернуться к началу
 Профиль  
 
 Заголовок сообщения:
СообщениеДобавлено: 23 апр 2009, 12:31 
Не в сети
Разработчик

Зарегистрирован: 08 ноя 2007, 01:05
Сообщения: 8343
Откуда: Уфа
Карма: 238
писание api выложил для 4.6..там правда нет коментариев к методам , но по названию понятно должно быть..У вас ругается в 32- строчке на то, что он не может нати jsch.jar - либо нет это бибюлиотеки либо если это виндовс и версия 4.5, то она не прописана в ini-файле


Вернуться к началу
 Профиль  
 
 Заголовок сообщения:
СообщениеДобавлено: 23 апр 2009, 14:08 
Не в сети

Зарегистрирован: 16 апр 2009, 00:12
Сообщения: 62
Карма: 0
Библиотека /usr/local/bgbilling/BGBillingServer/lib/jsch.jar имеется, BGBillng версии 4.6, версия ява diablo-jre1.6.0, сервер FreeBSD 6.4, права на директории BGBillingServer, BGRadiusDialup - в режиме 775, установлены на все поддиректории рекурсивно.


Вернуться к началу
 Профиль  
 
 Заголовок сообщения:
СообщениеДобавлено: 24 апр 2009, 10:07 
Не в сети
Разработчик

Зарегистрирован: 27 ноя 2006, 20:36
Сообщения: 5715
Карма: 93
Попробуйте эту либу снова выбрать из дистрибутива, может покрошилась. Обновление JRE последнее стоит?


Вернуться к началу
 Профиль  
 
 Заголовок сообщения:
СообщениеДобавлено: 25 апр 2009, 15:39 
Не в сети

Зарегистрирован: 16 апр 2009, 00:12
Сообщения: 62
Карма: 0
Скачал BGBillingServer_4.6_434, тупо перезалил всю папку /lib, снес JRE, скачал с http://www.freebsdfoundation.org/downloads/java.shtml diablo-jdk-freebsd6.i386.1.6.0.07.02.tbz, поставил теперь точно все свежее, но изменений не произошло...Может серверу как-то абсолютный путь к либам скормить?


Вернуться к началу
 Профиль  
 
 Заголовок сообщения:
СообщениеДобавлено: 27 апр 2009, 17:06 
Не в сети
Разработчик

Зарегистрирован: 08 ноя 2007, 01:05
Сообщения: 8343
Откуда: Уфа
Карма: 238
diablo .. у вас не sun-ская ява чтоли стоит ?


Вернуться к началу
 Профиль  
 
 Заголовок сообщения:
СообщениеДобавлено: 27 апр 2009, 17:34 
Не в сети

Зарегистрирован: 16 апр 2009, 00:12
Сообщения: 62
Карма: 0
Ну...я как бы это обозначил четыремя постами ранее. Да и под фрей, насколько я распологаю инфой, диабло крайне рекомендована. Тем более. что там сказано
Цитата:
The official JRE and JDK binaries based on Sun's latest partner sources provide end-users and developers alike with confidence that they can use and create Java applications on FreeBSD with the same degree of portability, robustness and stability that they have come to expect from other supported operating systems. These binaries have been fully tested under Sun's compatibility test suite.

Вы считаете, что может здесь собака порылась? Чтож, буду искать методы прикручивания Sun-овской явы.


Вернуться к началу
 Профиль  
 
 Заголовок сообщения:
СообщениеДобавлено: 04 май 2009, 18:37 
Не в сети

Зарегистрирован: 16 апр 2009, 00:12
Сообщения: 62
Карма: 0
В общем почти все срослось, поставил из портов /usr/ports/java/jdk16
только нужно после каждого изменения скрипта не забывать делать radius.sh flush_script_cache
Администратор писал(а):
Может проще событие логоф добавить? А то что-то грозный алгоритм выходит.. Только в WiKi опишите, как вы это применили. Для 4.6 на следующей недели мог бы сделать..

Сделайте пожалуйста, очень нужно.
Текущий вопрос в следующем: как получить IP залогиневшегося юзера?
при использовании
Код:
request = event.getRequest();
     ip = request.getStringAttribute(RadiusStandartAttributes.Framed_IP_Address)

переменной ip присвается значение null
Код:
05-04/01:48:41  INFO [processor-p-2-t-12] EventProcessor - Process event cid:2; event:Event bitel.billing.server.processor.event.RadiusAuthenticationEvent cid: 2; module: 1; type: 120
05-04/01:48:41  INFO [processor-p-2-t-12] script - Process time => 99
05-04/01:48:41  INFO [processor-p-2-t-12] script - UserName:ppuser123
mac:00:xx:xx:xx:xx:xx
ip:null

хотя в логе радиуса вроде все в порядке
Код:
05-04/01:48:41  INFO [processor-p-2-t-12] radius -  AUTH:
Type=AUTHENTICATION_REQUEST
Attributes:
   User-Name=ppuser123
   NAS-Identifier=MikroTik
   NAS-Port-Id=6_Lan
   NAS-IP-Address=192.168.8.1
   NAS-Port=390
   Service-Type=2
   Framed-Protocol=1
   Calling-Station-Id=00:xx:xx:xx:xx:xx
   NAS-Port-Type=15
   Called-Station-Id=pppoe_in
   MS-CHAP2-Response=t-Interim-Interval=60
   Service-Type=2
   Framed-Protocol=1
   Framed-IP-Address=192.168.9.20
   MS-MPPE-Send-Key=Ђ6
   NAS-Port-Type=15
   Called-Station-Id=pppoe_in
   MS-CHAP2-Response=·ДЌ4
   MS-MPPE-Recv-Key=Ђ:
   User-Name=ppuser123
   NAS-Identifier=MikroTik
   NAS-IP-Address=192.168.8.1
   NAS-Port=392
   Service-Type=2
   Framed-Protocol=1
   Framed-IP-Address=192.168.9.20
   Acct-Status-Type=1
   Acct-Delay-Time=0
   Acct-Session-Id=8190017c
   Acct-Authentic=1
   NAS-Port-Id=6_Lan
   Event-Timestamp=1241389059
   NAS-Port-Type=15
   Calling-Station-Id=00:xx:xx:xx:xx:xx
   Called-Station-Id=pppoe_in


Вернуться к началу
 Профиль  
 
 Заголовок сообщения:
СообщениеДобавлено: 04 май 2009, 19:55 
Не в сети
Разработчик

Зарегистрирован: 08 ноя 2007, 01:05
Сообщения: 8343
Откуда: Уфа
Карма: 238
попробуйте получить getByteValue


Вернуться к началу
 Профиль  
 
 Заголовок сообщения:
СообщениеДобавлено: 05 май 2009, 02:39 
Не в сети

Зарегистрирован: 16 апр 2009, 00:12
Сообщения: 62
Карма: 0
Не получается, сыпятся ошибки синтаксиса. Я так понимаю, сначала дожно произойти радиус-аксепт? как его правильно зафиксировать? Каков должен быть правильный синтаксис проверки аксепта и выполнения getValueByte?


Вернуться к началу
 Профиль  
 
 Заголовок сообщения:
СообщениеДобавлено: 05 май 2009, 13:09 
Не в сети
Разработчик

Зарегистрирован: 08 ноя 2007, 01:05
Сообщения: 8343
Откуда: Уфа
Карма: 238
Chaos писал(а):
Не получается, сыпятся ошибки синтаксиса. Я так понимаю, сначала дожно произойти радиус-аксепт? как его правильно зафиксировать? Каков должен быть правильный синтаксис проверки аксепта и выполнения getValueByte?


вы как его получали и печатали и работали с ним ?

попробуйте так :

Код:
ip = request.getByteAttribute(RadiusStandartAttributes.Framed_IP_Address);
print("ip=");
if ( ip != null)
{
  for ( i =0; i < ip.length;i++)
  {
   print(ip[i]);
  }
  print("\n");
}

надо работаьть с ним как с массивом байтов и пробразовать его в строку можно как-то так :
IPUtils.convertIpToString( Utils.IuTol( Utils.convertBytesToInt( ip ) ) );


Вернуться к началу
 Профиль  
 
 Заголовок сообщения:
СообщениеДобавлено: 06 май 2009, 00:49 
Не в сети

Зарегистрирован: 16 апр 2009, 00:12
Сообщения: 62
Карма: 0
Благодарен. Получилось вот так
Код:
   response = event.getResponse();
   ip = response.getIntAttribute(RadiusStandartAttributes.Framed_IP_Address);
   ipadr = Utils.convertIpToString( ip );
   print("ip=" + ipadr);
ИМХО на много проще, да и мороки нету с массивом. Только почему-то работает только в случае, если ip занесен/привязан в договоре. Можно конечно забить, но хотелось бы использоваться микротишные пулы. По событию логофа вопрос актуален. Что нужно для его решения?


Вернуться к началу
 Профиль  
 
Показать сообщения за:  Поле сортировки  
Начать новую тему Ответить на тему  [ Сообщений: 68 ]  На страницу 1, 2, 3  След.

Часовой пояс: UTC + 5 часов [ Летнее время ]


Кто сейчас на конференции

Сейчас этот форум просматривают: нет зарегистрированных пользователей и гости: 1


Вы не можете начинать темы
Вы не можете отвечать на сообщения
Вы не можете редактировать свои сообщения
Вы не можете удалять свои сообщения
Вы не можете добавлять вложения

Найти:
Перейти:  
cron
POWERED_BY
Русская поддержка phpBB
[ Time : 0.075s | 76 Queries | GZIP : On ]