欢迎来到福编程网,本站提供各种互联网专业知识!

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

发布时间:2006-10-09 作者: 来源:转载

/*

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)
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 < $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 " 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 "

  • ".$val."
  • n";

    }

    print "

n";

break;

}

print "n


".$app_name." v".$app_version."n";

print "n";

?>

相关推荐