Биллинговая система Nodeny
22 Ноября 2024, 22:53:34 *
Добро пожаловать, Гость. Пожалуйста, войдите или зарегистрируйтесь.
Вам не пришло письмо с кодом активации?

Войти
Новости: Прекращена поддержка версии Nodeny 49
 
   Начало   Помощь Поиск Войти Регистрация  
Страниц: [1]
  Печать  
Автор Тема: Добавить фишку.  (Прочитано 4646 раз)
Warlock
NoDeny
Старожил
*

Карма: 8
Offline Offline

Сообщений: 367


Просмотр профиля
« : 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.
Записан
Pa4ka
Старожил
****

Карма: 4
Offline Offline

Сообщений: 281

591884591
Просмотр профиля Email
« Ответ #1 : 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
Записан
Warlock
NoDeny
Старожил
*

Карма: 8
Offline Offline

Сообщений: 367


Просмотр профиля
« Ответ #2 : 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
Записан
fet4
Старожил
****

Карма: 2
Offline Offline

Сообщений: 326


Просмотр профиля Email
« Ответ #3 : 25 Августа 2016, 09:36:24 »

Поддерживаю, нужная функция.
Записан
Warlock
NoDeny
Старожил
*

Карма: 8
Offline Offline

Сообщений: 367


Просмотр профиля
« Ответ #4 : 04 Сентября 2016, 12:04:23 »

Ап
Записан
nexton
Пользователь
**

Карма: 0
Offline Offline

Сообщений: 8


Просмотр профиля
« Ответ #5 : 04 Октября 2016, 08:31:45 »

Ап
для цього використовую multi-linku ppp deamon
Записан
Страниц: [1]
  Печать  
 
Перейти в:  

Powered by MySQL Powered by PHP Powered by SMF 1.1.20 | SMF © 2006-2009, Simple Machines Valid XHTML 1.0! Valid CSS!