Идентификация Voip оператора по подсети (транзит)

Материал из BiTel WiKi

(Различия между версиями)
Перейти к: навигация, поиск
(Новая: http://www.bgbilling.ru/forum/viewtopic.php?t=2802)
 
Строка 1: Строка 1:
http://www.bgbilling.ru/forum/viewtopic.php?t=2802
http://www.bgbilling.ru/forum/viewtopic.php?t=2802
 +
<source lang="java">
 +
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 );
 +
}
 +
</source>

Текущая версия на 04:32, 5 февраля 2010

http://www.bgbilling.ru/forum/viewtopic.php?t=2802

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 );
}
Личные инструменты