/* by waddler(@netlife.fi) 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)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 "$a_query is registered at $a_server:"; $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)n"; } else { fputs($sock, "$a_queryrn"); while(!feof($sock)) { echo fgets($sock,128); } fclose($sock); } } else { echo "$a_query was not found."; } } } // 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)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 print "$count/$str_count".$ret_strs[$count]."n"; } // ----------------------------------------------------------- $app_name = "$app_version = "0.1"; $TOOLS = array( "finger" => "Finger", "traceroute" => "Traceroute", "whois" => "Whois?" ); // when included inside on a html file .. if ($tool=="listtools") { while (list($key, $val) = each($TOOLS)) { print " ".$val."n"; } exit; } // print appropriate html header print ""; if ($tool) { print "".$tool." for ".$query."n"; print "n".$tool." for ".$query." ..n"; } else { print "".$app_name."n"; print "n".$app_name."n"; } // check what tool they want to use and do what is necessary switch($tool) { case "finger": if ($query) { print "n"; finger($server, $query); print "登录后复制"; } else { ?> Server : Query : break; case "traceroute": if ($query) { print "n"; traceroute($query); print "登录后复制"; } else { ?> Query : break; case "whois": if ($query) { print "n"; whois($server,$query); print "登录后复制"; } else { ?> This will find .com, .org, and .net domains Server : Query : break; default: print "Currently supported tools are:n"; while (list($key, $val) = each($TOOLS)) { echo "n"; } print "n"; break; } print "n".$app_name." v".$app_version."n"; print "n"; ?>
09-11 23:07