#!/usr/bin/perl

$datahome = ".";

opendir CURRENTDIR, $datahome or die "Cannot open dir: $!";
   @files = grep /.txt$/, readdir CURRENTDIR;
closedir CURRENTDIR;

if (!@files) { print "No Ping files\n"; }

#print ("Content-type: text/html\n\n");
print("<HTML>\n<BODY>\n");

for ( $f = 0 ; $f < @files ; $f++ ) {

  @flnm_stg1 = split(/.txt/, $files[$f]);
  @flnm_stg = split(/_/, $flnm_stg1[0]);

  print "--------------------------------------<br>\n";
  print "Machine: <b>$flnm_stg[0]</b> @ IP: <b>$flnm_stg[2]</b><br>\n";
  print "Ping Log for FWS Server: <b>$flnm_stg[1]</b><br>\n";
  print "Date (mmddyy): <b>$flnm_stg[4]</b> @ Time (hhmmss): <b>$flnm_stg[3]</b><br>\n";
  print "--------------------------------------<br>\n";

  open (PINGIN, $files[$f]) || die "Could not open \"$files[$f]\".\n$!";

  @fltmp = <PINGIN>;
  $lncntr = $otcntr = $pngtot = $totbyt = $avgms = $tpcntr = $tocntr = 0;
  &sumpng(@fltmp);

  close(PINGIN);
}

print "$lncntr<br>\n";

$avgms = ( $pngtot / $lncntr );
print "Total Time: $tpngtot<br>\n";
print "Total # of pings: $tlncntr<br>\n";

$totbyt = ($lncntr*$tstbyt[1]);
print "Total Bytes xferred: $ttotbyt<br>\n";
printf("Avg Time: %6.3f ms<br>\n",$tavgms);
print "----------------------------------<br>\n";

print("</BODY>\n</HTML>\n");

sub sumpng {
  my(@tmp) = @_;

  for ( $x = 0 ; $x < @tmp ; $x++ ) {
    $tmpstg = $tmp[$x];
    if ( $tmpstg =~ /time=/ ) {
      $lncntr++;
      @tststg = split(/ time=/, $tmpstg);
      @tstbyt = split(/bytes=/, $tststg[0]);
      @tmsplt = split(/ms TTL=/, $tststg[1]);
      $tbyt2sec = ($tmsplt[0]*$tstbyt[1])/8096;
      $tbyt3sec = (($tstbyt[1]*8)*($tmsplt[0]/1000))/1024;
      $lno = $x;
      if ($lno < 10) {$lno = "0$lno";}
      printf("$lno\) %6.3f ms @ %6.3f kbit\/sec or %6.3f kbyte\/sec<br>\n", $tmsplt[0], $tbyt2sec, $tbyt3sec);
      $pngtot=$pngtot+$tmsplt[0];
      $tpngtot=$tpngtot+$pngtot;
    }
    elsif ( $tmpstg =~ /timed out/ ) {
      $tocntr++;
    }
  }
  print "----------------------------------<br>\n";
  print "$lncntr<br>\n";

  $avgms = ( $pngtot / $lncntr );
  $tavgms = $tavgms + $avgms;
  print "Total Time: $pngtot<br>\n";
  print "Total # of pings: $lncntr<br>\n";

  $totbyt = ($lncntr*$tstbyt[1]);
  $ttotbyt = $ttotbyt + $totbyt;
  print "Total Bytes xferred: $totbyt<br>\n";
  printf("Avg Time: %6.3f ms<br>\n",$avgms);

  $tpcntr = ( $tocntr / 30 );
  print "Packets Lost %: $tpcntr<br>\n";
}

