Биллинговая система Nodeny

Главная категория => Nodeny Plus => Тема начата: Warlock от 24 Августа 2016, 15:00:22



Название: Добавить фишку.
Отправлено: Warlock от 24 Августа 2016, 15:00:22
Стас, возможно ли добавить функцию, что-то типа kick пользователя?
Просто иногда есть такая необходимость, чтоб пользователь переподключился..
Для mpd5 сделать, чтоб в базу записывался интерфейс и дальше чтоб он скрипт сбрасывал пользователя по имени интерфейса.
Код:
#!/usr/bin/perl
$hostname="127.0.0.1";
$port="5005";
$login='warlock';
$passw='bar';
if( $ARGV[0] eq '' ) { die 'Usage: userkill.pl interface'; };
$interface=$ARGV[0];
use Net::Telnet ();

$t = new Net::Telnet ;
$t->open(Host => $hostname, Port => $port, Timeout => 10);
$t->binmode(1);
$t->waitfor('/Username:.*$/');
$t->print($login);
$t->waitfor('/Password:.*$/');
$t->print($passw);
$t->waitfor('/]/');
$t->print("iface ".$interface);
$t->waitfor('/]/');
$t->print("close");
$t->waitfor('/]/');
$t->print("exit");
exit 0;
А для модуля CoA чтоб посылался disconnect.


Название: Re: Добавить фишку.
Отправлено: Pa4ka от 24 Августа 2016, 16:54:55
Стас, возможно ли добавить функцию, что-то типа kick пользователя?
Просто иногда есть такая необходимость, чтоб пользователь переподключился..
Для mpd5 сделать, чтоб в базу записывался интерфейс и дальше чтоб он скрипт сбрасывал пользователя по имени интерфейса.
Код:
#!/usr/bin/perl
$hostname="127.0.0.1";
$port="5005";
$login='warlock';
$passw='bar';
if( $ARGV[0] eq '' ) { die 'Usage: userkill.pl interface'; };
$interface=$ARGV[0];
use Net::Telnet ();

$t = new Net::Telnet ;
$t->open(Host => $hostname, Port => $port, Timeout => 10);
$t->binmode(1);
$t->waitfor('/Username:.*$/');
$t->print($login);
$t->waitfor('/Password:.*$/');
$t->print($passw);
$t->waitfor('/]/');
$t->print("iface ".$interface);
$t->waitfor('/]/');
$t->print("close");
$t->waitfor('/]/');
$t->print("exit");
exit 0;
А для модуля CoA чтоб посылался disconnect.
У меня такое в sql.conf радиуса что бы писалась сессия и номер влана, там и процедуры изменены
Цитировать
postauth_query = "call radupdate('%{User-Name}','%{reply:Framed-IP-Address}','%{Called-Station-Id}',\
                      'nas=%{NAS-IP-Address};ses=%{Acct-Session-Id}')"
        accounting_update_query = "call radupdate('%{User-Name}','%{Framed-IP-Address}','%{Called-Station-Id}',\
                          'nas=%{NAS-IP-Address};ses=%{Acct-Session-Id}')
ну и потом по ses=%{Acct-Session-Id}' модулем CoA посылаю что нужно пользователю.
Ето с NAS accel-ppp приходит идентификатор сессии Acct-Session-Id, она уникальна вроде и для mpd5


Название: Re: Добавить фишку.
Отправлено: Warlock от 24 Августа 2016, 21:01:20
Стас, возможно ли добавить функцию, что-то типа kick пользователя?
Просто иногда есть такая необходимость, чтоб пользователь переподключился..
Для mpd5 сделать, чтоб в базу записывался интерфейс и дальше чтоб он скрипт сбрасывал пользователя по имени интерфейса.
Код:
#!/usr/bin/perl
$hostname="127.0.0.1";
$port="5005";
$login='warlock';
$passw='bar';
if( $ARGV[0] eq '' ) { die 'Usage: userkill.pl interface'; };
$interface=$ARGV[0];
use Net::Telnet ();

$t = new Net::Telnet ;
$t->open(Host => $hostname, Port => $port, Timeout => 10);
$t->binmode(1);
$t->waitfor('/Username:.*$/');
$t->print($login);
$t->waitfor('/Password:.*$/');
$t->print($passw);
$t->waitfor('/]/');
$t->print("iface ".$interface);
$t->waitfor('/]/');
$t->print("close");
$t->waitfor('/]/');
$t->print("exit");
exit 0;
А для модуля CoA чтоб посылался disconnect.
У меня такое в sql.conf радиуса что бы писалась сессия и номер влана, там и процедуры изменены
Цитировать
postauth_query = "call radupdate('%{User-Name}','%{reply:Framed-IP-Address}','%{Called-Station-Id}',\
                      'nas=%{NAS-IP-Address};ses=%{Acct-Session-Id}')"
        accounting_update_query = "call radupdate('%{User-Name}','%{Framed-IP-Address}','%{Called-Station-Id}',\
                          'nas=%{NAS-IP-Address};ses=%{Acct-Session-Id}')
ну и потом по ses=%{Acct-Session-Id}' модулем CoA посылаю что нужно пользователю.
Ето с NAS accel-ppp приходит идентификатор сессии Acct-Session-Id, она уникальна вроде и для mpd5
То что ты показываешь - это фрагмент конфига, который делался изначально для меня, и ты посылашь через coa то, что нужно изменить. Я предлагаю сделать отдельно пункт disconnect


Название: Re: Добавить фишку.
Отправлено: fet4 от 25 Августа 2016, 09:36:24
Поддерживаю, нужная функция.


Название: Re: Добавить фишку.
Отправлено: Warlock от 04 Сентября 2016, 12:04:23
Ап


Название: Re: Добавить фишку.
Отправлено: nexton от 04 Октября 2016, 08:31:45
Ап
для цього використовую multi-linku ppp deamon