| forum.bitel.ru http://forum.bitel.ru/  | 
|
| Идентификация по подсети (транзит) http://forum.bitel.ru/viewtopic.php?f=6&t=2802  | 
	Страница 1 из 1 | 
| Автор: | Maj [ 29 авг 2009, 19:01 ] | 
| Заголовок сообщения: | Идентификация по подсети (транзит) | 
Здравствуйте. Сложилась следующая ситуация: один из транзитных операторов отдает трафик с подсети /24. Идентифицируем операторов по Framed-IP-Address. Можно ли как-то средствами биллинга идентифицировать этого оператора? Не очень бы хотелось заводить 254 логина с алиасами в виде каждого IP адреса из подсети...  | 
	|
| Автор: | Amir [ 29 авг 2009, 19:12 ] | 
| Заголовок сообщения: | |
Можно скриптом предобработки запроса определять по ip и подставлять логин/calling-station-id http://bgbilling.ru/v4.6/doc/ch04s05s01.html  | 
	|
| Автор: | Maj [ 31 авг 2009, 09:57 ] | 
| Заголовок сообщения: | |
Спасибо, в итоге так и сделали: Код: import bitel.billing.server.call.bean.Login; 
import bitel.billing.server.radius.*; import bitel.billing.server.contract.bean.*; import bitel.billing.server.script.event.*; import bitel.billing.common.IPUtils; import java.util.*; import java.util.regex.Matcher; import java.util.regex.Pattern; import java.sql.*; op = request.getIntAttribute( 8 ); op = IPUtils.convertIpToString( op ); print( "Operator's IP: " + op ); String [] arr = op.split("\\."); op = arr[0] + "." + arr[1] + "." + arr[2] + "."; ps = con.prepareStatement( "SELECT id, net, name, login_name from transit_operators_with_nets WHERE net REGEXP '^" + op + "'" ); rs = ps.executeQuery(); rs.last(); int rowCount = rs.getRow(); rs.beforeFirst(); // Сколько записей получили print("Retrieved " + rowCount + " row(s)."); found = false; while(rs.next()) { // Есть хотя бы одна запись... username = rs.getString( 4 ); operatorname = rs.getString( 3 ); print ( "Found UserName for " + operatorname + ", username: " + username); found = true; break; } if( found ) { request.setStringAttribute( 1, username ); request.setStringAttribute( 2, username ); } В БД хранится информация о сети, и что нужно подставлять в UserName.  | 
	|
| Страница 1 из 1 | Часовой пояс: UTC + 5 часов [ Летнее время ] | 
| Powered by phpBB® Forum Software © phpBB Group http://www.phpbb.com/  | 
|