【 tulaoshi.com - PHP 】
                             
                               <?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)<BRn"; 
} 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)<BRn"; 
} 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)<BRn"; 
} 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."</OPTIONn"; 
} 
exit; 
} 
// print appropriate html header 
print "<HTML"; 
if ($tool) 
{ 
print "<HEAD<TITLE".$tool." for ".$query."</TITLE</HEADn"; 
print "<BODYn<H3".$tool." for ".$query." ..</H3n"; 
} else { 
print "<HEAD<TITLE".$app_name."</TITLE</HEADn"; 
print "<BODYn<H3".$app_name."</H3n"; 
} 
// check what tool they want to use and do what is necessary 
switch($tool) { 
case "finger": 
if ($query) 
{ 
print "<PREn"; 
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 "<PREn"