【 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"