匯倖喘噐利大議垢醤痕方垂

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

  ?>