#!/usr/local/bin/perl
$|=1;
BEGIN { require "../CGI.pm"; import Module CGI; }
$raw="";
$query = new CGI;
$host = $query->param('host');
if ($host) {
$ipAddr=$host;
}
else {
    if ($ENV{"HTTP_X_FORWARDED_FOR"}) {
        @forward=split(",",$ENV{"HTTP_X_FORWARDED_FOR"});
        $ipAddr=$forward[0];
    }
    else {
        $ipAddr=$ENV{"REMOTE_ADDR"};
    }
}
print "Content-type: text/html\n\n" ;
print "<html><head><title>Ping $ipAddr</title></head><body>";
print "<center><h1>Ping Facility</h1></center><hr><p>";
print <<FR;
<form method=post action="ping.cgi">
Please Input Host IP Address or Name<br>
<input type=text size=40 name="host"> 
<input  type=submit> <input type=reset>
</form>
<hr>
FR
open TR ,"ping -s $ipAddr 56 10 |";
print "<center><h3>Ping From www.im.ncnu.edu.tw to <font color=red>$ipAddr</font></h3></center>\n";
while (<TR>) {
if (/(\d*)\spackets\stransmitted,\s(\d*)\spackets\sreceived,\s(\d*%)\spacket\sloss/)
{
print <<PL;
<center>
<table width=85% cellpadding=2 bgcolor=#DDDDFF align=center border=2>
<tr><th colspan=3 bgcolor=#FFFFBB align=center><font size=+2>Packet Loss</th
></tr>
<tr><td valign=middle width=34% align=center rowspan=2><font color=red size=+2>$3</font></td><th align=center width=40%># Packetes Sent</th><th align=center>$1</th></tr>
<tr><th align=center># Packetes Received</th><th align=center>$2</th></tr>
</table>
</center>
PL
}
else {
if (/round-trip\s\(ms\)\s*min\/avg\/max\s=\s(\d*)\/(\d*)\/(\d*)\sms/) {
print <<RRT;
<center>
<table width=85% cellpadding=2 bgcolor=#DDDDFF align=center border=2>
<tr><th colspan=3 bgcolor=#FFFFBB align=center><font size=+2>Round Trip Time</th></tr>
<tr><th align=center>Minimum</th><th align=center>Average</th><th align=center>Maximum</th></tr> 
<tr><td align=center><font size=+1 color=red>$1 ms</font></td><td align=center><font size=+1 color=red>$2 ms</font></td><td align=center><font size=+1 color=red>$3 ms</font></td></tr> 
</table>
</center>
RRT
}
else {
      $raw=$raw . $_ ."<br>" if (!(/^---/ || ($_ == ""))); 
}
}
}
close TR;
$raw="<font color=green size=+2>Unkown Host: </font><font color=red size=+2>$ipAddr</font>" if ($raw == "");
print <<RAW;
<p>
<center>
<table width=85% cellpadding=10 bgcolor=#DDDDFF border=2>
<tr><th bgcolor=#FFFFBB align=center><font size=+2>Detail Information</th></tr>
<tr><td>$raw</td></tr>
</table>
</center>
RAW
