一个用于网络的工具函数库

  作者:bea

<?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 = fso
<?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>";



?> 


有用  |  无用

猜你喜欢