Контроль трафика linux freebsd в реалтайме

Полез я в интернет, и заметил что очень медленно грузятся сайты. Хм-м-м-м, подумал я, что то тут не то. И полез смотреть нагрузку интерфейсов программой nload.

О БОЖЕ! Что я увидел: какая то какашка качает в полный рост, но кто именно, я понять не могу.

Оки доки, подумал я, и набросал вот такой скрипт, что бы быстро можно было посмотреть кто жрет трафик linux

Сохраняем исходник who_eat_trap.pl в корне /root и запускаем так: tcpdump -nn -i eth0 port not 22| /root/who_eat_traff.pl

#!/usr/bin/perl

$counter =0;

while (<STDIN>){
$line = $_;
if ($line =~ /.+ IP (\d+.\d+.\d+.\d+).\d+ > (192.168.\d+.\d+).\d+:.+/)
....
    {
    #print "$1 > $2\n";
    $ips{$2} ++;
    $counter ++;
    }
....
....
    if ($counter > 500){
    foreach $a (keys %ips) {
        print "$a = $ips{$a}\n";
<------>}
    $counter=0;
    print "\n\n\n";
    }

}#end while

Вуаля. теперь вы можете наблюдать статистику расхода интернета по айпишникам в реалтайме.

в строке "if ($counter > 500)" 500 - Это количество пакетов, через которые выводить статистику.

статистика будет в виде:
192.168.0.143 = 205
192.168.0.120 = 40
192.168.0.172 = 5663
192.168.0.107 = 132
192.168.0.181 = 44
192.168.1.2 = 2
192.168.0.101 = 496
где цифра после знака равно, количество пакетов отправленных ЭТОМУ (ДЛЯ ЭТОГО) айпи, то есть, это сколько пакетов скачал злобный юзер из инета.