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

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

Репутация: 354


Отправить сообщение для Dracula4ever с помощью ICQ Отправить сообщение для Dracula4ever с помощью AIM Отправить сообщение для Dracula4ever с помощью Yahoo
По умолчанию

Это 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, &$errstr10);
    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_server43, &$errno, &$errstr10);
            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, &$errstr10);
   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>";

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