3

Там есть tload которая отображает среднюю нагрузку.

Там есть iftop этой сети в виде баров.

Как сделать что-то вроде этого:

# tcpdump -i eth0 --plot 'host 1.2.3.4'
13:45:03  |                        | 0 in 0 out
13:45:04  |O                       | 0 in 1MB out
13:45:05  |OOOI                    | 500 KB in 4MB out
13:45:06  |OIIII                   | 6MB in 1MB out
13:45:07  |                        | 0 in 0 out
13:45:08  |IIIIIIIIIIII            | 53M in 0 out

1 ответ1

0

Что ж, если у вас установлены Perl и tcpdump, не должно быть слишком сложно взломать что-нибудь ...
Следующий скрипт выведет что-то вроде:

# ./host_traffic google.com
   0k
  30k ****************
  26k **************
  24k *************
  26k **************
  43k **********************
  39k ********************
  24k *************
  15k ********
   0k

Я оставлю отправленные / полученные байты в качестве упражнения.

host_traffic:

#!/usr/bin/perl

$interface = "eth0";
$interval = 1;
$target_host = $ARGV[0];
$bytes = 0;

sub print_stats
{
    $nstars = $bytes / 2000;   # diagram scale = 2k
    $stars = "";
    for ($i = 0; $i < $nstars; $i++)
    { $stars .= "*"; }
    printf("%4ik $stars\n", $bytes / 1000);

    $bytes = 0;
    alarm $interval;
}

$SIG{ALRM} = sub { print_stats(); };
alarm $interval;
$pcap_filter = "ip src or dst $target_host";
open(IN, "tcpdump -s 500 -l -n -i $interface '$pcap_filter' | ");

while (my $s = <IN>)
{   # parse tcpdump output
    if ($s =~ m|(.*) IP (.*)\.([^.]*) > (.*)\.([^.]*): Flags \[(.*)\],.*, length (.*)|)
    {
        my ($timestamp, $src, $sport, $dst, $dport, $flags, $len) = ($1, $2, $3, $4, $5, $6, $7);   
        $bytes += $len;
        next;
    }
    print $s;
}

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .