Показать сообщение отдельно

  #25  
Старый 04.01.2007, 23:10
Dracula4ever
Постоянный
Регистрация: 08.05.2006
Сообщений: 559
С нами: 10531106

Репутация: 354


По умолчанию

Это PHP скрипт, который включает следующи утилиты: whois, finger, и traceroute.


PHP код:
<?PHP
// 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_query\r\n");
        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_query\r\n");
                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_query\n");
        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>";

?>
 
Ответить с цитированием