lightsquid + dhcpd

Проблемы с установкой, настройкой и работой системных и сетевых программ.

Модераторы: GRooVE, alexco

Правила форума
Убедительная просьба юзать теги [code] при оформлении листингов.
Сообщения не оформленные должным образом имеют все шансы быть незамеченными.
BlackPhantom
мл. сержант
Сообщения: 128
Зарегистрирован: 2007-11-02 11:34:10

lightsquid + dhcpd

Непрочитанное сообщение BlackPhantom » 2009-03-19 10:39:42

Добрый день. Использую сабжевую связку для анализа логов сквида, но поскольку адреса раздаются по dhcp, использую ip2name функцию, та что в комплекте не работает, видимо обрабатывает лог устаревшего вида, нашел на ру-боарде функцию под новый формат dhcp, вот такого вида

Код: Выделить всё

#use /var/db/dhcpd/dhcpd.leases  
#look like  
#lease 192.168.0.85 {  
#  starts 3 2007/11/07 01:56:06;  
#  ends 3 2007/11/14 01:56:06;  
#  binding state active;  
#  next binding state free;  
#  hardware ethernet 00:15:f2:e0:69:4d;  
#  uid "\001\000\025\362\340iM";  
#  client-hostname "Sasha";  
#}  
  
use Socket;  
  
sub StartIp2Name() {  
  my $body = Readdhcpd_leases();  
  while ($body =~ m/\nlease (.*?)\s?\{(.*?)\}/sig) {  
        my $ip = $1;  
        my $tmp = $2;  
        $tmp =~ m/\n(.*)?hostname\s"(.*)?"/;  
        my $host = $2;  
        $host = "\u\L$host";  
        $hIP{$ip} = $host;  
  }  
}  
  
sub Ip2Name($$$) {  
  #$Lhost,$user,$Ltimestamp  
  if (exists($hIP{$Lhost})) {  
        $Lhost = $hIP{$Lhost};  
  }  
  return $Lhost;  
}  
  
sub StopIp2Name() {  
}  
  
sub Readdhcpd_leases() {  
  local $/;  
  my $file;  
  open FFAAAA,"<","/var/db/dhcpd/dhcpd.leases";  
  $file=<FFAAAA>;  
  close FFAAAA;  
  return $file;  
}  
  
#warning !!!!  
1;
только вот иногда каша получается, вот такая:

Код: Выделить всё

user: 11 
size: 1384353366 
172.24.1.10                667802665           24778       263218123 
Malenkov                   204689763           21302          428706 
172.24.1.20                170909620            2922         1254168 
172.24.1.186               106307641           14843           73384 
172.24.1.112                85293200           18133          908271 
172.24.1.195                43194559            7443          254917 
172.24.1.184                40177823           10832          694825 
 
  starts 3 2009/03/18 16:33:04; 
  ends 3 2009/03/18 18:33:04; 
  tstp 3 2009/03/18 18:33:04; 
  binding state free; 
  hardware ethernet 00:1f:d0:03:56:c9; 
  uid "\001\000\037\320\003v\311"; 
        29915464            6048          138359 
 
  starts 3 2009/03/18 16:36:42; 
  ends 3 2009/03/18 18:36:42; 
  tstp 3 2009/03/18 18:36:42; 
  binding state free; 
  hardware ethernet 00:1f:d0:03:56:cf; 
  uid "\001\000\037\320\003v\317"; 
        26324799            1726           55565 
172.24.1.161                 8435789            1777          318336 
172.24.1.145                 1302043             176               0
а должно быть:

Код: Выделить всё

user: 7 
size: 29781240 
Goloborodiy                 12422487             387            4306 
Malenkov                     7812933            2883           70506 
Yakovlev                     1318157              39           10795 
Kudin                        1262364              20            1804 
Samoilenko                    824739              15               0
я так подозреваю, что происходит потому что в файле /var/db/dhcpd/dhcpd.leases в некоторый случаях появляется строчка "uid", а в некоторых нет, поэтому сбивается форматирование... подскажите как решить, или как оптимизировать скрипт, чтоб корректно считывалось...

Хостинговая компания Host-Food.ru
Хостинг HostFood.ru
 

Услуги хостинговой компании Host-Food.ru

Хостинг HostFood.ru

Тарифы на хостинг в России, от 12 рублей: https://www.host-food.ru/tariffs/hosting/
Тарифы на виртуальные сервера (VPS/VDS/KVM) в РФ, от 189 руб.: https://www.host-food.ru/tariffs/virtualny-server-vps/
Выделенные сервера, Россия, Москва, от 2000 рублей (HP Proliant G5, Intel Xeon E5430 (2.66GHz, Quad-Core, 12Mb), 8Gb RAM, 2x300Gb SAS HDD, P400i, 512Mb, BBU):
https://www.host-food.ru/tariffs/vydelennyi-server-ds/
Недорогие домены в популярных зонах: https://www.host-food.ru/domains/

Аватара пользователя
Alex Keda
стреляли...
Сообщения: 35262
Зарегистрирован: 2004-10-18 14:25:19
Откуда: Made in USSR
Контактная информация:

Re: lightsquid + dhcpd

Непрочитанное сообщение Alex Keda » 2009-06-08 11:00:07

лучше заставьте их авторизоваться
Убей их всех! Бог потом рассортирует...

esl
рядовой
Сообщения: 14
Зарегистрирован: 2009-01-27 16:35:35

Re: lightsquid + dhcpd

Непрочитанное сообщение esl » 2009-06-08 13:33:16

BlackPhantom писал(а):Добрый день. Использую сабжевую связку для анализа логов сквида, но поскольку адреса раздаются по dhcp, использую ip2name функцию, та что в комплекте не работает, видимо обрабатывает лог устаревшего вида, нашел на ру-боарде функцию под новый формат dhcp, вот такого вида

http://forum.ru-board.com/topic.cgi?for ... &start=280

там чуть другая есть, проверь ее

sub StartIp2Name() {
my $body = Readdhcpd_leases();
while ($body =~ m/\nlease (.*?)\s?\{(.*?)\}/sig) {
my $ip = $1;
my $tmp = $2;
$tmp =~ m/\n(.*)?hostname\s"(.*)?"/;
my $host = $2;
if ($host =~ /starts/) {$host = $ip;}
$host = "\u\L$host";
$hIP{$ip} = $host;
}
}
LightSquid author.
Homesite: http://lightsquid.sf.net