您的位置:首页技术文章

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

【字号: 日期:2023-09-08 16:23:33浏览:2作者:馨心
<?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>"?>;
标签: PHP