#!/usr/bin/perl # # Copyright (c) 1985 Corporation for Research and Educational Networking # Copyright (c) 1988 University of Illinois Board of Trustees, Steven # Dorner, and Paul Pomes # All rights reserved. # # Redistribution and use in source and binary forms, with or without # modification, are permitted provided that the following conditions # are met: # 1. Redistributions of source code must retain the above copyright # notice, this list of conditions and the following disclaimer. # 2. Redistributions in binary form must reproduce the above copyright # notice, this list of conditions and the following disclaimer in the # documentation and/or other materials provided with the distribution. # 3. All advertising materials mentioning features or use of this software # must display the following acknowledgement: # This product includes software developed by the Corporation for # Research and Educational Networking (CREN), the University of # Illinois at Urbana, and their contributors. # 4. Neither the name of CREN, the University nor the names of their # contributors may be used to endorse or promote products derived from # this software without specific prior written permission. # # THIS SOFTWARE IS PROVIDED BY THE TRUSTEES AND CONTRIBUTORS ``AS IS'' AND # ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE # IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE # ARE DISCLAIMED. IN NO EVENT SHALL THE TRUSTEES OR CONTRIBUTORS BE LIABLE # FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL # DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS # OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) # HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT # LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY # OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF # SUCH DAMAGE. # # @(#)$Id$ while (<>) { chop; split; $mmdd = "$_[0] $_[1]"; if ($mmdd ne $oldmmdd) { if ($oldmmdd ne "") { &DumpIt; } $oldmmdd = $mmdd; } if ($_[5] eq "begin") { $sessions++; if ($_[6] eq "NET") {$byhost{$_[7]}++;} } $commands{$_[5]}++; } if ($mmdd ne "") { $oldmmdd = $mmdd; &DumpIt; } exit 0; sub DumpIt { if ($sessions > 10) { printf " ph stats $oldmmdd\n\n"; @k = keys %byhost; printf "%d sessions from %d hosts.\n\n",$sessions,$#k; $other = $sessions; $otherHosts = $#k; foreach $h (keys byhost) { if ($byhost{$h}>20) { $other -= $byhost{$h}; $otherHosts--; # printf "%-25s %d (%d%%)\n", # (gethostbyaddr(pack('C4',split('\.',$h)),2))[0], $byhost{$h}, # ((100 * $byhost{$h}) / $sessions); printf "%-25s %d (%d%%)\n", $h, $byhost{$h}, ((100 * $byhost{$h}) / $sessions); } } $otherStr = sprintf("other (%d hosts)", $otherHosts); printf "%-25s %d (%d%%)\n\n", $otherStr, $other, ((100 * $other)/ $sessions); $cmdTotal = 0; @j = keys %commands; foreach $c (keys commands) { $cmdTotal += $commands{$c}; } printf "%d commands used %d times\n\n", $#j, $cmdTotal; foreach $c (keys commands) { if ($commands{$c}>5) { printf "%-15s %6d (%d%%)\n", $c, $commands{$c}, (($commands{$c} * 100) / $cmdTotal); } } } $sessions = 0; %byhost = (); %commands = (); }