#!/usr/bin/perl -w

$def_int = "eth0";
$def_sca = 1;

$pnd = "/proc/net/dev";
$int = ($ARGV[0])?($ARGV[0]):($def_int);
$seg = 10;
$kil = 10000;
$kps = $kil*$seg;
$sca = ($ARGV[1])?($ARGV[1]):($def_sca);

sub getbytes
{
	open (PND, "<$pnd");
	while (<PND>) {
		if (/^\s*$int:\s*(.*)$/) {
			return ((split(/\s+/,$1))[0,8]);
		}
	}
	close PND;
}

print "Mira bytes rebuts i enviats per $int a $pnd cada $seg segons.\n\n";

($xr, $xs) = &getbytes;
while (1) {
	sleep $seg;
	($yr, $ys) = &getbytes;
	($zr, $zs) = ($yr - $xr, $ys - $xs);
	printf ("%10.5f KB/s %s\n", $zr/$kps, '>'x($zr/$kps/$sca));
	printf ("%10.5f KB/s %s\n", $zs/$kps, '<'x($zs/$kps/$sca));
	print "\n";
	($xr, $xs) = ($yr, $ys);
}


