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

Войти
Новости: Прекращена поддержка версии Nodeny 49
 
  Начало Помощь Поиск Войти Регистрация  
  Просмотр сообщений
Страниц: [1]
1  Главная категория / Общий раздел / Re: ip+mac+авторизатор : 01 Апреля 2010, 10:04:44
В дополнительных полях клиента заводим текстовое _AUTHmacs, куда будем записывать разрешенные маки.

файл nol2auth.pl
1. после
Код:
 $U{$ip}{last_got_info}=$t; # запомним когда получили инфо о клиенте
вставляем
Код:
 $sth=$dbh->prepare("SELECT field_alias, field_value FROM dopfields INNER JOIN dopvalues ON (dopfields.id = dopvalues.dopfield_id)".
" WHERE dopfields.field_alias='_AUTHmacs' AND  dopvalues.parent_id = $id".
" ORDER BY revision DESC LIMIT 1");
 if( $sth->execute ) {
    while ($addp = $sth->fetchrow_hashref ())    {
$U{$ip}{$addp->{field_alias}}=$addp->{field_value};
    }
 }

2. Перед
Код:
   # --- авторизация прошла успешно ---
вставляем
Код:
        if($U{$ip}{'_AUTHmacs'} ne '') {
$mac=`arp -n $ip`;
         &Debug(" get MACinfo (\n$mac\n) from ip ($ip)\n");
# тут - получение МАСа в дебиан, для фри индекс в квадратных скобках другой (см. вывод "arp -n 127.0.0.1")
my $tmpMAC=uc((stat(split(/\s+/,$mac)))[8]);

if (index(uc($U{$ip}{'_AUTHmacs'}),$tmpMAC)<0)
{ # неудачная авторизация
         send(SOCKET,"no$U{$ip}{'id_query'}",0,$hispaddr); # т.к. длина 'no'+$zapros2 <>16, то старые клиенты не будут воспринимать это как строку для шифрования
         &Debug("2й шаг авторизации. Неудачная авторизация по MAC ($U{$ip}{'_AUTHmacs'} ne $tmpMAC)");
         &Slap_Ip($ip,2); # накажем на 5 пунктов
         next;
}}

upd: это все - для nol2auth.pl 49.32

У кого-то работает по данной схеме авторизация?
Я пробовал сделать но ничего не вышло...
Код:
&Debug(" get MACinfo (\n$mac\n) from ip ($ip)\n");
# тут - получение МАСа в дебиан, для фри индекс в квадратных скобках другой (см. вывод "arp -n 127.0.0.1")
my $tmpMAC=uc((stat(split(/\s+/,$mac)))[8]);
индекс я ставил 3

Может кто-то подсказать где могут быть не точности?
Страниц: [1]
Powered by MySQL Powered by PHP Powered by SMF 1.1.20 | SMF © 2006-2009, Simple Machines Valid XHTML 1.0! Valid CSS!