BiTel

Форум BiTel
bgbilling.ru     docs.bitel.ru     wiki.bitel.ru     dbinfo.bitel.ru     bgcrm.ru     billing.bitel.ru     bitel.ru    
Текущее время: 28 апр 2024, 22:44

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




Начать новую тему Ответить на тему  [ Сообщений: 9 ] 
Автор Сообщение
СообщениеДобавлено: 25 июл 2015, 22:55 
Не в сети

Зарегистрирован: 11 июл 2013, 13:27
Сообщения: 32
Карма: 0
Здравствуйте, пересмотрел много статей и книг по Java, но так и не нашел нужной команды. Bgbilling 6.1, Centos 6.6
В пакете приходит атрибут радиуса: Framed-IP-Address = х.х.х.х
В словаре он имеет следующий тип
<attribute name="Framed-IP-Address" type="ipaddr" code="8"/>
Какую мне нужно применить команду в скрипте предобработки, чтобы без ошибок получить значение атрибута и перевести его в строку.
Пробовал request.getAttribute(8) - выскакивает ошибка.
Это нужно для обсчета операторов по новой схеме.
operator_1 = "x.x.x.x";
operator_2 = "y.y.y.y";

oper = request.getAttribute(8);

if ( oper.startsWith( operator_1 ) )
{
request.setOption( "operator", 1 );

}
else if ( oper.startsWith( operator_2 ) )
{
request.setOption( "operator", 2 );

}

Заранее благодарен


Вернуться к началу
 Профиль  
 
СообщениеДобавлено: 26 июл 2015, 02:11 
Не в сети

Зарегистрирован: 11 июл 2013, 13:27
Сообщения: 32
Карма: 0
Сама же отвечу на этот вопрос. Пришлось помучиться.
Первоначально получаем IP адрес в типе Integer:
op = request.getIntAttribute( -1, RadiusDictionary.Framed_IP_Address, null );

Функции как таковой нет, которая конвертировала тип IP в строку, поэтому пишем свою функцию:
public static String intToIp(int i) {
return ((i >> 24 ) & 0xFF) + "." +
((i >> 16 ) & 0xFF) + "." +
((i >> 8 ) & 0xFF) + "." +
( i & 0xFF);
}

Теперь ее только остается вызвать:
oper = intToIp(op);
В итоге получим IP адрес строкой.


Вернуться к началу
 Профиль  
 
СообщениеДобавлено: 27 июл 2015, 17:57 
Не в сети
Разработчик

Зарегистрирован: 08 ноя 2007, 01:05
Сообщения: 8343
Откуда: Уфа
Карма: 238
У нас есть функция
Код:
IPUtils.convertIpToString


Вернуться к началу
 Профиль  
 
СообщениеДобавлено: 28 июл 2015, 14:14 
Не в сети

Зарегистрирован: 11 июл 2013, 13:27
Сообщения: 32
Карма: 0
Спасибо) только тогда скажите, как получить IP в таком типе, а не Integer. Применяя данную функцию, пишет ошибку, ссылаясь на неправильный тип переменной


Вернуться к началу
 Профиль  
 
СообщениеДобавлено: 28 июл 2015, 14:47 
Не в сети
Клиент
Аватара пользователя

Зарегистрирован: 29 мар 2010, 23:11
Сообщения: 5854
Карма: 472
String ipAddr = IPUtils.convertIpToString(oper);

_________________
Цитаты великих людей :umnik:
Напишите в helpdesk © stark
повторяю: => хелпдеск => доработка => профит © dimOn
свершилось... © skn
Мой код изящен, лёгок, оригинален, краток. Как прохладный весенний ветерок, как звонкий ручей! © dimOn
Вежливый разработчик © Artur
Эти баги тоже исправлены, как и те, которые еще не написаны © Artur
ну т.е. существует воркэраунд, ок © dimOn


Вернуться к началу
 Профиль  
 
СообщениеДобавлено: 28 июл 2015, 18:36 
Не в сети
Разработчик

Зарегистрирован: 08 ноя 2007, 01:05
Сообщения: 8343
Откуда: Уфа
Карма: 238
Unior писал(а):
Спасибо) только тогда скажите, как получить IP в таком типе, а не Integer. Применяя данную функцию, пишет ошибку, ссылаясь на неправильный тип переменной

Код:
IPUtils.convertIpToString(request.getIntAttribute( -1, RadiusDictionary.Framed_IP_Address, null ))


Вернуться к началу
 Профиль  
 
СообщениеДобавлено: 28 июл 2015, 19:05 
Не в сети

Зарегистрирован: 11 июл 2013, 13:27
Сообщения: 32
Карма: 0
Так делал уже.
Attempt to resolve method: convertIpToString() on undefined variable or class name: IPUtils
Sourced file: inline evaluation of: ``import java.sql.*; import java.util.*; import bitel.billing.server.radius.*; imp . . . '' : Attempt to resolve method: convertIpToString() on undefined variable or class name: IPUtils : at Line: 64 : in file: inline evaluation of: ``import java.sql.*; import java.util.*; import bitel.billing.server.radius.*; imp . . . '' : IPUtils .convertIpToString ( request .getIntAttribute ( - 1 , RadiusDictionary .Framed_IP_Address , null ) )


Вернуться к началу
 Профиль  
 
СообщениеДобавлено: 28 июл 2015, 19:08 
Не в сети
Разработчик

Зарегистрирован: 08 ноя 2007, 01:05
Сообщения: 8343
Откуда: Уфа
Карма: 238
Unior писал(а):
Так делал уже.
Attempt to resolve method: convertIpToString() on undefined variable or class name: IPUtils
Sourced file: inline evaluation of: ``import java.sql.*; import java.util.*; import bitel.billing.server.radius.*; imp . . . '' : Attempt to resolve method: convertIpToString() on undefined variable or class name: IPUtils : at Line: 64 : in file: inline evaluation of: ``import java.sql.*; import java.util.*; import bitel.billing.server.radius.*; imp . . . '' : IPUtils .convertIpToString ( request .getIntAttribute ( - 1 , RadiusDictionary .Framed_IP_Address , null ) )

Код:
import bitel.billing.common.IPUtils;


Вернуться к началу
 Профиль  
 
СообщениеДобавлено: 28 июл 2015, 19:14 
Не в сети

Зарегистрирован: 11 июл 2013, 13:27
Сообщения: 32
Карма: 0
Да, спасибо, понял. Заработало.


Вернуться к началу
 Профиль  
 
Показать сообщения за:  Поле сортировки  
Начать новую тему Ответить на тему  [ Сообщений: 9 ] 

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


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

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


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

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