#!/usr/bin/perl
$count = 0;

%HOST;

open(LOG, $ARGV[0]);
while (my $line = <LOG>)
{
	$count++;
	print "[INFO]Count: $count \n" if ($count % 100000 == 0);

	$tmp_1 = index($line, "http://") + 7;
	$host = substr($line, $tmp_1, index($line, "/", $tmp_1) - $tmp_1);
	next if (length($host) < 5);

	$tmp_1 = index($line, "\" ") + 6;
	$size = substr($line, $tmp_1, index($line, "\"", $tmp_1) - 1 - $tmp_1);
	next if ($size !~ /^(\d+)$/);

	$HOST{$host} += $size;
}
close(LOG);

print "Total Count:$count\n";
print "Result:\n";

foreach my $key1 (sort keys %HOST)
{
	$sizeNum = $HOST{$key1};
	$sizeTxt = "b";
	while($sizeNum >= 1024)
	{
		$sizeNum = $sizeNum / 1024;
		if ($sizeTxt eq "b")
		{
			$sizeTxt = "Kb";
		}
		elsif ($sizeTxt eq "Kb")
		{
			$sizeTxt = "Mb";
		}
		elsif ($sizeTxt eq "Mb")
		{
			$sizeTxt = "Gb";
		}
	}
	printf "%s | %.2f%2s\n", $key1, $sizeNum, $sizeTxt;
}

