📄 nettools.php
字号:
<?PHP
// whois(hostname [,username, [port]])
/***************************************
function: whois查询
$param: $a_server 服务器地址
$param: $a_query 查询字段
$param: $a_port 查询端口
****************************************/
Function whois ($a_server, $a_query="", $a_port=43) {//whois的端口号为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)) //寻找whois服务器
{
$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); //建立与whois
//服务器的连接
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查询
$param: $a_server 服务器地址
$param: $a_query 查询字段
$param: $a_port 查询端口
****************************************/
Function finger ($a_server, $a_query="", $a_port=79) {//finger端口号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函数
/***************************************
function: traceroute查询
$param: $a_query 查询字段
****************************************/
Function traceroute ($a_query) {
exec("traceroute $a_query",$ret_strs); //调用系统命令traceroute
$str_count = count($ret_strs);
for ($count=0; $count < $str_count; $count++)
print "$count/$str_count".$ret_strs[$count]."\n";
}
// -----------------------------------------------------------
$app_name = "PHP 网络实用工具";
$app_version = "0.1";
$TOOLS = array(
"finger" => "Finger",
"traceroute" => "Traceroute",
"whois" => "Whois?"
);
// 如果包含在一个<select name="tool">标签中
if ($tool=="listtools")
{
while (list($key, $val) = each($TOOLS)) {
print " <OPTION VALUE=\"".$key."\">".$val."</OPTION>\n";
}
exit;
}
// 输出HTML头
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";
}
// 判断用户想要使用哪种工具
switch($tool) {
case "finger":
//如果有$query变量,就执行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 {
?>
<FORM ACTION="<?PHP echo($PHP_SELF. "?tool=".$tool); ?>" METHOD="post">
可以查询.com, .org, and .net 域名<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>当前支持的工具有:\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>";
?>
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -