Авторизатор локальной сети (L2)

Статус
В этой теме нельзя размещать новые ответы.

cube

Постоялец
Регистрация
14 Мар 2009
Сообщения
82
Реакции
4
У кого есть рабочий авторизатор локальной сети (L2) для Linux?
Я использую Linux Ubuntu 10.4!!
Нужен авторизатор или подскажите как его под Linux настроить?
 
Что такое авторизатор?
Винду активировать? Пользователей авторизовать? WiFI-клиентов идентифицировать?
 
Авторизатор нормально и корректно запускается вод Wine . Если очень надо то можно на их родной форум спросить сходить.
Есть такой вариант - Для просмотра ссылки Войди или Зарегистрируйся

Как вариант авторизатор на перл. Так как перл мултиплатформенный то его и на винде и на маке и вообще на чем угодно запустить можно.

PHP:
#!/usr/bin/perl
# ============================================================ =============
# Автоизатор
# ============================================================ =============
use IO::Socket;
use Sys::Hostname;
use Crypt::Rijndael;

# ------------------------------------------------------------ -------------

$yourpass = 'you_password'; # Замените на пароль
$server = '192.168.7.254'; # сервер авторизации
$portno = 7723; # порт подключения

# ------------------------------------------------------------ -------------
$ver = 14; # protocol version
$v = 0; # 1 - verbose
# ============================================================ =============

sub SEND
{
$sock1->send($_[0]);
}

sub GET
{
my ($i,$n,$str,$tmout,$rin,$txt,$ip,$addr) = (0,10,'',5,'','','','');
vec($rin,fileno($sock2),1) = 1;
while (select($txt = $rin, undef, undef, $tmout) && ++$i<$n)
{
$tmout = 0;
$addr = recv($sock2, $txt, 100, 0);
($ip, $addr) = sockaddr_in($addr);
$ip = join(".",unpack ("C4", $addr));
next if $ip ne $server;
$str=$txt;
}
unless ($str)
{
$noanswer++;
if ($noanswer>10) {$noanswer=0; sleep 20;}
print "no answer...\n" if $v;
}
return($str);
}

# ============================================================ ==================

$passwd_in = substr((substr $yourpass, 0, 3)."Z" x 16, 0, 16);
$passwd_out = substr((substr $yourpass, 3, 16)."0" x 16, 0, 16);

$sock1 = IO::Socket::INET->new(Proto => 'udp', PeerPort => $portno, PeerAddr => $server);
unless ($sock1) {print "Cannot create socket...exit\n"; exit;}

$proto = getprotobyname('udp');
unless (socket($sock2, PF_INET, SOCK_DGRAM, $proto) &&
bind($sock2, sockaddr_in($portno, INADDR_ANY)) )
{print "Cannot bind socket...exit\n"; exit;}

$id = substr(rand,2,6);
$noanswer = 0;

while(1)
{
$id = 999999 unless $id--;
&SEND("$ver$id");
print "BEGIN SESSION\n" if $v;

$p = &GET;
next unless $p;
if ($p !~ /^id(.{16})$ver$id$/s)
{
&GET;
&GET;
sleep 1;
next;
}
$cipher = new Crypt::Rijndael $passwd_in,Crypt::Rijndael::MODE_CBC;
$key = $cipher->decrypt($1);
$cipher = new Crypt::Rijndael $passwd_out,Crypt::Rijndael::MODE_CBC;
$skey = $cipher->encrypt($key);
&SEND($skey."a$ver$id");
$p = &GET;
next unless $p;
$stat = substr $p,0,2;
$stat = $stat eq 'ok' || $stat eq 'sv' ? "OK" : "NO";
print "AUTH $stat\n" if $v;

sleep 40;
}
 
Статус
В этой теме нельзя размещать новые ответы.
Назад
Сверху