forum.bitel.ru http://forum.bitel.ru/ |
|
логины Dialup в сервисы inet... стат IP проставить http://forum.bitel.ru/viewtopic.php?f=19&t=12269 |
Страница 1 из 1 |
Автор: | Akhmat [ 22 фев 2017, 19:13 ] |
Заголовок сообщения: | логины Dialup в сервисы inet... стат IP проставить |
по скрипту из вики http://wiki.bitel.ru/index.php/%D0%9A%D ... D1%8B_inet конвертирую логины, все ок. но хочу проставить стат ип в сервисе... не проставляет никак. ставлю ip из категории 5. вручную проставляется этот ip на сервис, скриптом нет. Код: ... serv = new InetServ(); serv.setContractId( cid ); serv.setComment( "Импортирован из VPN" ); serv.setDateFrom( dateFrom ); serv.setDateTo( dateTo ); serv.setLogin( login ); serv.setPassword( pswd ); serv.setTypeId( INET_SERV_TYPE_VPN_ID ); serv.setSessionCountLimit( sessionCount ); //serv.setDeviceId( inetDeviceId ); if (lip>0) {//Если есть стат ИП пытаемся проставить byte[] bip = Utils.convertLongToBytes(lip) ; serv.setIpResourceId(5) ; serv.setIpResourceSubscriptionId(5) ; serv.setAddressFrom(bip) ; serv.setAddressTo(bip) ; } ... wsServ.inetServUpdate( serv, new ArrayList<InetServOption>(), false, false, 0 ); в логах ошибка Код: add new service for cid 667115;login tsoraev1 Error while updating service for contract 667115;login=tsoraev1:Подходящий ip ресурс не найден Как проставить? |
Автор: | barguzin2 [ 22 фев 2017, 20:01 ] |
Заголовок сообщения: | Re: логины Dialup в сервисы inet... стат IP проставить |
Ресурс и AddressTo не надо выставлять, достаточно только setAddressFrom у меня строковые адреса были, сл. код нормально всё создавал Код: ... ipAddr = rs.getString(3); byte[] ip = InetAddress.getByName(ipAddr).getAddress(); ... serv.setAddressFrom(ip); wsInetServ.inetServUpdate(serv, new ArrayList<InetServOption>(), false, false, 0 ); Проверь еще после установки адреса в сервис вот такую команду, должна выводить ип в виде строки Код: print(InetAddress.getByAddress(serv.getAddressFrom()).getHostAddress());
|
Автор: | fmaks [ 22 фев 2017, 20:14 ] |
Заголовок сообщения: | Re: логины Dialup в сервисы inet... стат IP проставить |
Вот как-то так для статиков заводил: Код: ... List<Integer> ipResourceCategoryIds = wsServ.ipResourceCategoryIds( inetServ.getDeviceId(), inetServ.getInterfaceId(), inetServ.getTypeId() ); List<IpResourceNet> rangeList = wsResource.freeIpResourceNetList( ipResourceCategoryIds, null, inetServ.getDateFrom(), inetServ.getDateTo(), 30, Integer.MAX_VALUE ); ... byte[] b = new byte[4]; // Получаем ip в b .... ... boolean freeIpFound = false; for( IpResourceNet range: rangeList ) { if( freeIpFound ) { continue; } if( range.inNet( b ) ) { inetServ.setIpResourceId( range.getIpResourceId() ); print( " found free ip resource" ); inetServ.setAddressFrom( range.getSubnet() ); inetServ.setAddressTo( range.getMaxIp() ); freeIpFound = true; } } if( !freeIpFound ) { print( " ERROR! free ip from resource not found for " + ip ); return false; } int serviceId = wsServ.inetServUpdate( inetServ, new ArrayList<InetServOption>(), false, false, 0 ); ... для вас, если это статика с одним ip должна быть маска /32 Код: List<IpResourceNet> rangeList = wsResource.freeIpResourceNetList( ipResourceCategoryIds, null, inetServ.getDateFrom(), inetServ.getDateTo(), 32, Integer.MAX_VALUE );
|
Автор: | fmaks [ 22 фев 2017, 20:25 ] |
Заголовок сообщения: | Re: логины Dialup в сервисы inet... стат IP проставить |
Хотя мой вариант, возможно, может не подойти, зависит от того, что у вас в типе сервиса указано "в типе адреса". |
Автор: | Akhmat [ 22 фев 2017, 20:27 ] |
Заголовок сообщения: | Re: логины Dialup в сервисы inet... стат IP проставить |
barguzin2 писал(а): Проверь еще после установки адреса в сервис вот такую команду, должна выводить ип в виде строки Код: print(InetAddress.getByAddress(serv.getAddressFrom()).getHostAddress()); Этот метод рабочий. Второй не пробовал. Спасибо всем. |
Автор: | Amir [ 22 фев 2017, 20:45 ] |
Заголовок сообщения: | Re: логины Dialup в сервисы inet... стат IP проставить |
Добавлю: serv.setIpResourceId(5) в данном месте не нужен и не сработает, т.к. сервер сам пытается найти для указанного IP и устройства подходящий IP-ресурс (прописанный на устройстве или его предке). Utils.convertLongToBytes(lip) - скорее всего вернет 8 байт, а надо 4. |
Страница 1 из 1 | Часовой пояс: UTC + 5 часов [ Летнее время ] |
Powered by phpBB® Forum Software © phpBB Group http://www.phpbb.com/ |