<?PHP 
/* 
PHP Net Toolpack v0.1 08.05.2000, 
by waddler(@netlife.fi) 
phpnettoolpack.sourceforge.net 
To be distributed under GNU GPL 
*/ 
// whois(hostname [,username, [port]]) 
Function whois ($a_server, $a_query="", $a_port=43) { 
$sock = fsockopen($a_server, $a_port, &$errno, &$errstr, 10); 
if (!$sock) 
{ 
echo "$errstr ($errno)<BR>n"; 
} else { 
fputs($sock, "$a_queryrn"); 
while(!feof($sock)) 
{ 
$buf = fgets($sock,128); 
if (ereg( "Whois Server:", $buf)) 
{ 
$a_server = str_replace( "Whois Server: ", "", $buf); 
$a_server = trim($a_server); 
} 
} 
fclose($sock); 
if ($a_server) 
{ 
print "<B>$a_query is registered at $a_server:</B><BR>"; 
$sock = fsockopen($a_server, 43, &$errno, &$errstr, 10); 
if(!$sock) 
{ 
echo "Could not open connection to $a_server on port $a_port.n"; 
echo "$errstr ($errno)<BR>n"; 
} else { 
fputs($sock, "$a_queryrn"); 
while(!feof($sock)) 
{ 
echo fgets($sock,128); 
} 
fclose($sock); 
} 
} else { 
echo "<b>$a_query was not found.</b><BR>"; 
} 
} 
} 
// finger(hostname [,username, [port]]) 
Function finger ($a_server, $a_query="", $a_port=79) { 
$sock=fsockopen($a_server,$a_port, &$errno, &$errstr, 10); 
if (!$sock) 
{ 
$ret_str = "$errstr ($errno)<BR>n"; 
} else { 
fputs($sock,"$a_queryn"); 
while (!feof($sock)) { $ret_str .= fgets($sock,128); } 
fclose($sock); 
} 
echo $ret_str; 
return $ret_str; 
} 
// traceroute(hostname) 
Function traceroute ($a_query) { 
exec("traceroute $a_query",$ret_strs); 
$str_count = count($ret_strs); 
for ($count=0; $count < $str_count; $count  ) 
print "$count/$str_count".$ret_strs[$count]."n"; 
} 
// ----------------------------------------------------------- 
$app_name = "PHP Net Toolpack"; 
$app_version = "0.1"; 
$TOOLS = array( 
"finger" => "Finger", 
"traceroute" => "Traceroute", 
"whois" => "Whois?" 
); 
// when included inside <select name="tool"> on a html file .. 
if ($tool=="listtools") 
{ 
while (list($key, $val) = each($TOOLS)) { 
print " <OPTION VALUE="".$key."">".$val."</OPTION>n"; 
} 
exit; 
} 
// print appropriate html header 
print "<HTML>"; 
if ($tool) 
{ 
print "<HEAD><TITLE>".$tool." for ".$query."</TITLE></HEAD>n"; 
print "<BODY>n<H3>".$tool." for ".$query." ..</H3>n"; 
} else { 
print "<HEAD><TITLE>".$app_name."</TITLE></HEAD>n"; 
print "<BODY>n<H3>".$app_name."</H3>n"; 
} 
// check what tool they want to use and do what is necessary 
switch($tool) { 
case "finger": 
if ($query) 
{ 
print "<PRE>n"; 
finger($server, $query); 
print "</PRE>"; 
} else { 
?> 
<FORM ACTION="<?PHP echo($PHP_SELF. "?tool=".$tool); ?>" METHOD="post"> 
Server : <INPUT TYPE="text" NAME="server" VALUE="localhost"> <BR> 
Query : <INPUT TYPE="text" NAME="query" SIZE="40" MAXLENGTH="100"> <BR> 
<INPUT TYPE="submit" VALUE="Finger"> 
</FORM> 
<?PHP 
} 
break; 
case "traceroute": 
if ($query) 
{ 
print "<PRE>n"; 
traceroute($query); 
print "</PRE>"; 
} else { 
?> 
<FORM ACTION="<?PHP echo($PHP_SELF. "?tool=".$tool); ?>" METHOD="post"> 
Query : <INPUT TYPE="text" NAME="query" SIZE="40" MAXLENGTH="100"> <BR> 
<INPUT TYPE="submit" VALUE="Trace route"> 
</FORM> 
<?PHP 
} 
break; 
case "whois": 
if ($query) 
{ 
print "<PRE>n"; 
whois($server,$query); 
print "</PRE>"; 
} else { 
?>  
<!-- <UL> 
To look up a NIC handle, host name, or registrant, 
use one of the keywords below:<BR> 
<LI>To search by NIC handle (or contact), type "handle WA3509"</LI><BR> 
<LI>To search by name, type "name lastname, firstname" </LI><BR> 
<LI>To search by company name, type "name The Sample Corporation" </LI><BR> 
<LI>To search by domain name, type "example.com" </LI><BR> 
<LI>To search by IP address, type "host 121.23.2.7" </LI><BR> 
<LI>To search by host or nameserver name, type "host ns1.worldnic.com" </LI><BR> 
(examples are from networksolutions.com) 
</UL> --> 
<FORM ACTION="<?PHP echo($PHP_SELF. "?tool=".$tool); ?>" METHOD="post"> 
This will find .com, .org, and .net domains<BR> 
Server : <INPUT TYPE="text" NAME="server" VALUE="rs.internic.net"> <BR> 
Query : <INPUT TYPE="text" NAME="query" SIZE="40" MAXLENGTH="100"> <BR> 
<INPUT TYPE="submit" VALUE="<?PHP echo $TOOLS[$tool]; ?>"> 
</FORM> 
<?PHP 
} 
break; 
default: 
print "<UL>Currently supported tools are:n"; 
while (list($key, $val) = each($TOOLS)) { 
echo "<LI><A HREF="".$PHP_SELF."?tool=".$key."">".$val."</A></LI>n"; 
} 
print "</UL>n"; 
break; 
} 
print "n<HR><SMALL>".$app_name." v".$app_version."</SMALL>n"; 
print "<BODY>n</HTML>"; 
?>