php 针探(查看服务器详细信息)

作者:袖梨 2022-06-24

/

代码如下 复制代码

* 一、本程序基于div+css教程 新型架构php探针,免费开源的自由软件,功能强大,结构清晰,使用方便。
1.支持windows,linux,unix,freebsd,sun solar系统
2.支持ie6,ie7,firefox,google chrome等浏览器。

二、主要用途及适用对象:
1.熟悉php编程的业余爱好者及专业开发人员。
2.机房管理人员配置linux(windows)+php+mysql教程+zend系统环境,检测系统是否配置成功。
3.对于购买虚拟主机的用户,用于测试服务器性能。
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
*/
//////////////////以下两变量可以修改配制
//如果这个探针你是用来验示的,你可以在下面变量中输入相关信息(会显示在页面底部
header("content-type: text/html; charset=utf-8");
error_reporting(e_error | e_warning | e_parse);
ob_start();

$valint = (false == empty($_post['pint']))?$_post['pint']:"未测试";
$valfloat = (false == empty($_post['pfloat']))?$_post['pfloat']:"未测试";
$valio = (false == empty($_post['pio']))?$_post['pio']:"未测试";
$mysqlreshow = "none";
$mailreshow = "none";
$funreshow = "none";
$opreshow = "none";
$sysreshow = "none";
//============ 定义常量 用于替换模板输出变量 =======================
//define("yes", "yes");
//define("no", "no");
define("yes", "");
define("no", "×");

//=================================================================
define("icon", "2 ");
$phps教程elf = $_server[php_self] ? $_server[php_self] : $_server[script_name];
define("phpself", preg_replace("/(.{0,}?/+)/", "", $phpself));

if ($_get['act'] == "phpinfo")
{
phpinfo();
exit();
}
elseif($_post['act'] == "整型测试")
{
$valint = test_int();
}
elseif($_post['act'] == "浮点测试")
{
$valfloat = test_float();
}
elseif($_post['act'] == "io测试")
{
$valio = test_io();
}
elseif($_post['act'] == "connect")
{
$mysqlreshow = "show";
$mysqlre = "mysql连接测试结果:";
$mysqlre .= (false !== @mysql_connect($_post['mysqlhost'], $_post['mysqluser'], $_post['mysqlpassword']))?"mysql服务器连接正常, ":"mysql服务器连接失败, ";
$mysqlre .= "数据库教程 ".$_post['mysqldb']." ";
$mysqlre .= (false != @mysql_select_db($_post['mysqldb']))?"连接正常":"连接失败";
}
elseif($_post['act'] == "sendmail")
{
$mailreshow = "show";
$mailre = "mail邮件发送测试结果:发送";
$mailre .= (false !== @mail($_post["mailreceiver"], "uenuprobe mail server test.", "this email is sent by uenuprobe. copyright uenucom http://www.**u*enu.com"))?"完成":"失败";
}
elseif($_post['act'] == "function_check")
{
$funreshow = "show";
$funre = "函数 ".$_post['funname']." 支持状况检测结果:".isfun($_post['funname']);
}
elseif($_post['act'] == "configuration_check")
{
$opreshow = "show";
$opre = "配置参数 ".$_post['opname']." 检测结果:".getcon($_post['opname']);
}

//========================================================================

//========================================================================
switch (php_os)
{
case "linux":
$sysreshow = (false != ($sysinfo = sys_linux()))?"show":"none";
break;
case "freebsd":
$sysreshow = (false != ($sysinfo = sys_freebsd()))?"show":"none";
break;
case "windows":
//$sysreshow = (false != ($sysinfo = sys_windows()))?"show":"none";
$sysinfo['uptime'] ="对不起windows系统不支持";
break;
default:
break;
}

//========================================================================

?>







服务器信息




服务器信息








<?php
switch($_get['action']){
case '':
?>
服务器特征
服务器时间 <?php echo gmdate("y年m月d日 h:i:s",time());?> (格林威治标准时间) <?php echo gmdate("y年n月j日 h:i:s",time()+8*3600)?> (北京时间)
服务器域名 <?php echo("$_server[server_name]"); ?>
服务器ip地址 <?php $host_ip=gethostbyname($_server["server_name"]); echo($host_ip);?>
服务器操作系统 <?php $os = explode(" ", php_uname()); echo $os[0]; echo " ";
if ($os[0] =="windows") {echo "主机名称:".$os[2];} else {echo "内核版本:".$os[2];}?>
服务器运行时间 <?php if ($sysinfo['uptime']!=""){ echo $sysinfo['uptime'];} else echo "对不起windows系统不支持"; ?>
服务器操作系统文字编码 <?php echo($_server["http_accept_language"]); ?>
服务器解译引擎 <?php echo($_server["server_software"]); ?>
web服务端口 <?php echo($_server["server_port"]); ?>
服务器管理员
本文件路径 <?php echo($_server["script_filename"]);?>
服务端剩余空间 <?php echo intval(diskfreespace(".") / (1024 * 1024)).'mb';?>
系统当前用户名 <?php echo @get_current_user();?>




<?php if(("show" !==$sysreshow) & ("0"!= $_env["number_of_processors"])& (""!= $_env["number_of_processors"])){?>
服务器处理器
cpu个数:<?php echo $_env["number_of_processors"]?> <?php echo " ".$_env["processor_identifier"]; echo " 运行级别:".$_env["processor_level"]; echo " 版本:".$_env["processor_revision"];?>

<?php }?>


<?php if(("show"==$sysreshow)&("0" != $sysinfo['cpu']['num'])&("" != $sysinfo['cpu']['num'])){?>
服务器处理器
cpu个数:<?php echo $sysinfo['cpu']['num']?> <?php echo $sysinfo['cpu']['detail']?>

<?php }?>
<?php if("show"==$sysreshow){?>
内存使用状况

<?php echo $sysinfo['memtotal']?>m, 已使用
<?php echo $sysinfo['memused']?>m, 空闲
<?php echo $sysinfo['memfree']?>m, 使用率
<?php echo $sysinfo['mempercent']?>%

swap区

共<?php echo $sysinfo['swaptotal']?>m, 已使用
<?php echo $sysinfo['swapused']?>m, 空闲
<?php echo $sysinfo['swapfree']?>m, 使用率
<?php echo $sysinfo['swappercent']?>%

系统平均负载
<?php echo $sysinfo['loadavg']?>

<?php }?>

<?php
break;
case 'phpinfo':
?>
php基本特征
php版本 <?php echo php_version;?> php运行方式 <?php /**strtoupper(php_sapi_name());**/ echo ucwords(php_sapi_name());?>
支持zend编译运行 (<?php if($zend="yes") {echo "版本:";echo zend_version();}?>) <?php echo $zend=(get_cfg_var("zend_optimizer.optimization_level")||get_cfg_var("zend_extension_manager.optimizer_ts")||get_cfg_var("zend_extension_ts")) ?yes:no?> 运行于安全模式 <?php if(get_cfg_var("safemode")){echo("是");}else echo("否"); ?>
自动定义全局变量 register_globals <?php echo @get_cfg_var("register_globals")?'on' : 'off';?> 允许使用url打开文件allow_url_fopen <?php echo get_cfg_var("allow_url_fopen")=="1"?yes:no?>
允许动态加载链接库enable_dl <?php echo get_cfg_var("enable_dl")=="1"?yes:no?> 显示错误信息 display_errors <?php echo get_cfg_var("display_errors")=="1"?yes:no?>
短标记<? ?>支持 <?php echo @get_cfg_var("short_open_tag")?yes:no;?> 标记<% %>支持 <?php echo @get_cfg_var("asp教程_tags")?yes:no;?>
cookie支持 <?php echo isset($http_cookie_vars)?yes:no;?> session支持 <?php echo function_exists(session_start)?yes:no;?>
浮点运算有效数字显示位数 <?php echo @get_cfg_var("precision");?> 强制y2k兼容 <?php echo @get_cfg_var("y2k_compliance")?yes:no;?>
被禁用的函数disable_functions <?php $disused = @get_cfg_var("disable_functions")?"1":"0";
if($disused =="1")
{echo ' ">'."more".'';}
else {echo "none";}?>
程序最长运行时间max_execution_time <?php echo(get_cfg_var("max_execution_time")."秒");?>
程序最多允许使用内存量 memory_limit <?php echo @get_cfg_var("memory_limit");?> post最大字节数 post_max_size <?php echo @get_cfg_var("post_max_size");?>
允许最大上传文件 upload_max_filesize <?php echo @get_cfg_var("file_uploads")?@get_cfg_var("upload_max_filesize") : $error;?> php信息 phpinfo <?php echo (false!==eregi("phpinfo",$disfuns))?no:"phpinfo"?>
html错误显示 <?php echo @get_cfg_var("html_errors")?yes:no;?> 调试器地址/端口 <?php echo $debugerhost=@get_cfg_var("debugger.host")?yes:no;if ($debugerhost =="yes") {echo @get_cfg_var("debugger.port")?yes:no;}?>
smtp支持 <?php echo @get_cfg_var("smtp")?yes:no;?> smtp地址 <?php echo @get_cfg_var("smtp");?>

<?php
break;
case 'otherinfo':
?>
php组件支持状况
拼写检查 aspell library <?php echo function_exists(aspell_new)?yes:no;?> 高精度数学运算 bcmath <?php echo function_exists(bcadd)?yes:no;?>
历法运算 calendar <?php echo function_exists(jdtofrench)?yes:no;?> 图形处理 gd library <?php echo function_exists(imageline)?yes:no;?>
类/对象支持 <?php echo function_exists(class_exists)?yes:no;?> 字串类型检测支持 <?php echo function_exists(ctype_upper)?yes:no;?>
iconv编码支持 <?php echo function_exists(iconv)?yes:no;?> mcrypt加密处理支持 <?php echo function_exists(mcrypt_cbc)?yes:no;?>
哈稀计算 mhash <?php echo function_exists(mhash)?yes:no;?> openssl支持 <?php echo function_exists(openssl_open)?yes:no;?>
prel相容语法 pcre <?php echo function_exists(preg_match)?yes:no;?> 正则扩展(兼容perl)支持 <?php echo function_exists(preg_match)?yes:no;?>
socket支持 <?php echo function_exists(fsockopen)?yes:no;?> 流媒体支持 <?php echo function_exists(stream_context_create)?yes:no;?>
tokenizer支持 <?php echo function_exists(token_name)?yes:no;?> url支持 <?php echo function_exists(parse_url)?yes:no;?>
wddx支持(web distributed data exchange) <?php echo function_exists(wddx_add_vars)?yes:no;?> 压缩文件支持(zlib) <?php echo function_exists(gzclose)?yes:no;?>
xml解析 <?php echo function_exists(xml_set_object)?yes:no;?> ftp <?php echo function_exists(ftp_login)?yes:no;?>
目录存取协议(ldap)支持 <?php echo function_exists(ldap_close)?yes:no;?> yellow page系统支持 <?php echo function_exists(yp_match)?yes:no;?>
php和java综合支持 <?php echo function_exists(java_last_exception_get)?yes:no;?> imap电子邮件系统支持 <?php echo function_exists(imap_close)?yes:no;?>
snmp网络管理协议支持 <?php echo function_exists(snmpget)?yes:no;?> vmailmgr邮件处理支持 <?php echo function_exists(vm_adduser)?yes:no;?>
pdf文档支持 <?php echo function_exists(pdf_close)?yes:no;?> fdf表单资料格式支持 <?php echo function_exists(fdf_close)?yes:no;?>

<?php
break;
case 'dbinfo':
?>
数据库支持状况
mysql数据库支持 <?php echo function_exists(mysql_close)?yes:no;?> mysql数据库持续连接 <?php echo @get_cfg_var("mysql.allow_persistent")?yes:no;?>
mysql最大连接数 <?php echo @get_cfg_var("mysql.max_links")==-1 ? "不限" : @get_cfg_var("mysql.max_links");?> odbc数据库连接 <?php echo function_exists(odbc_close)?yes:no;?>
sql server数据库支持 <?php echo function_exists(mssql_close)?yes:no;?> msql数据库支持 <?php echo function_exists(msql_close)?yes:no;?>
postgre sql数据库支持 <?php echo function_exists(pg_close)?yes:no;?> oracle数据库支持 <?php echo function_exists(ora_close)?yes:no;?>
oracle 8 数据库支持 <?php echo function_exists(ocilogoff)?yes:no;?> dbase数据库支持 <?php echo function_exists(dbase_close)?yes:no;?>
sybase数据库支持 <?php echo function_exists(sybase_close)?yes:no;?> dba数据库支持 <?php echo function_exists(dba_close)?yes:no;?>
dbm数据库支持 <?php echo function_exists(dbmclose)?yes:no;?> dbx数据库支持 <?php echo function_exists(dbx_close)?yes:no;?>
db++数据库支持 <?php echo function_exists(dbplus_close)?yes:no;?> frontbase数据库支持 <?php echo function_exists(fbsql_close)?yes:no;?>
filepro数据库支持 <?php echo function_exists(filepro)?yes:no;?> informix数据库支持 <?php echo function_exists(ifx_close)?yes:no;?>
lotus notes数据库支持 <?php echo function_exists(notes_version)?yes:no;?> interbase数据库支持 <?php echo function_exists(ibase_close)?yes:no;?>
ingres数据库支持 <?php echo function_exists(ingres_close)?yes:no;?> hyperwave数据库支持 <?php echo function_exists(hw_close)?yes:no;?>
ovrimos sql数据库连接支持 <?php echo function_exists(ovrimos_close)?yes:no;?> sesam数据库连接支持 <?php echo function_exists(sesam_disconnect)?yes:no;?>
sqlite数据库连接支持 <?php echo function_exists(sqlite_close)?yes:no;?> adabas d数据库连接支持 <?php echo function_exists(ada_close)?yes:no;?>

<?php
break;
case 'testinfo':
?>
" method="post">


服务器性能检测
参照对象 整数运算能力检测(1+1运算300万次) 浮点运算能力检测(开平方300万次) 数据i/o能力检测(读取10k文件1万次)
红色主机单线型(双核) 0.33 秒 0.95 秒 0.03 秒
红色主机双线型(四核) 0.25 秒 0.79 秒 0.03 秒
xeon(tm) 2.80*2+4g+centos 5.2 0.068秒 0.086秒 小于0.100秒
xeon(tm) 2.80ghz+2g+freebsd 4.0 0.501秒 0.694秒 小于0.100秒
本台服务器 <?php echo $valint;?> <?php echo $valfloat;?> <?php echo $valio;?>






<?php
$ismysql = (false !== function_exists("mysql_query"))?"":" disabled";
$ismail = (false !== function_exists("mail"))?"":" disabled";
?>


" method="post">




mysql数据库连接检测
mysql服务器:
mysql用户名:
mysql用户密码: size="80" class="text2" />
mysql数据库名称:
name="act" />
<?php if("show"==$mysqlreshow){echo $mysqlre;}?>






" method="post">


php配置参数状况
请输入您要检测的参数名称:
<?php if("show"==$opreshow){echo $opre;}?>






" method="post">


函数检测
请输入您要检测的函数名称:
<?php if("show"==$funreshow){echo $funre;}?>






" method="post">


mail邮件发送测试
请输入您要检测的邮件地址: class="text2" />
name="act" />
<?php if("show"==$mailreshow){echo $mailre;}?>


<?php
break;
}?>




<?php

/*=============================================================
函数库
=============================================================*/

/*-------------------------------------------------------------------------------------------------------------
检测函数支持
--------------------------------------------------------------------------------------------------------------*/
function isfun($funname)
{
return (false !== function_exists($funname))?yes:no;
}
/*-------------------------------------------------------------------------------------------------------------
检测php设置参数
--------------------------------------------------------------------------------------------------------------*/
function getcon($varname)
{
switch($res = get_cfg_var($varname))
{
case 0:
return no;
break;
case 1:
return yes;
break;
default:
return $res;
break;
}

}
/*-------------------------------------------------------------------------------------------------------------
整数运算能力测试
--------------------------------------------------------------------------------------------------------------*/
function test_int()
{
$timestart = gettimeofday();
for($i = 0; $i {
$t = 1+1;
}
$timeend = gettimeofday();
$time = ($timeend["usec"]-$timestart["usec"])/1000000+$timeend["sec"]-$timestart["sec"];
$time = round($time, 6)."秒";
return $time;
}
/*-------------------------------------------------------------------------------------------------------------
浮点运算能力测试
--------------------------------------------------------------------------------------------------------------*/
function test_float()
{
$t = pi();
$timestart = gettimeofday();
for($i = 0; $i {
sqrt($t);
}
$timeend = gettimeofday();
$time = ($timeend["usec"]-$timestart["usec"])/1000000+$timeend["sec"]-$timestart["sec"];
$time = round($time, 6)."秒";
return $time;
}
/*-------------------------------------------------------------------------------------------------------------
数据io能力测试
--------------------------------------------------------------------------------------------------------------*/
function test_io()
{
$fp = @fopen(phpself, "r");
$timestart = gettimeofday();
for($i = 0; $i {
@fread($fp, 10240);
@rewind($fp);
}
$timeend = gettimeofday();
@fclose($fp);
$time = ($timeend["usec"]-$timestart["usec"])/1000000+$timeend["sec"]-$timestart["sec"];
$time = round($time, 6)."秒";
return($time);
}
/*-------------------------------------------------------------------------------------------------------------
比例条
--------------------------------------------------------------------------------------------------------------*/
function bar($percent)
{
echo '


  • ";
    echo '

';
}
/*-------------------------------------------------------------------------------------------------------------
根据不同系统取得cpu相关信息
--------------------------------------------------------------------------------------------------------------*/
switch(php_os) {
case "linux":
$sysreshow = (false !== ($sysinfo = sys_linux()))?"show":"none";
break;
case "freebsd":
$sysreshow = (false !== ($sysinfo = sys_freebsd()))?"show":"none";
break;
case "winnt":
$sysreshow = (false !== ($sysinfo = sys_windows()))?"show":"none";
break;
default:
break;
}

/*-------------------------------------------------------------------------------------------------------------
系统参数探测 linux
--------------------------------------------------------------------------------------------------------------*/
function sys_linux()
{
// cpu
if (false === ($str = @file("/proc/cpuinfo"))) return false;
$str = implode("", $str);
@preg_match_all("/models+names{0,}:+s{0,}([ws)(.]+)[ ]+/", $str, $model);
//@preg_match_all("/cpus+mhzs{0,}:+s{0,}([d.]+)[ ]+/", $str, $mhz);
@preg_match_all("/caches+sizes{0,}:+s{0,}([d.]+s{0,}[a-z]+[ ]+)/", $str, $cache);
if (false !== is_array($model[1]))
{
$res['cpu']['num'] = sizeof($model[1]);
for($i = 0; $i {
$res['cpu']['detail'][] = "类型:".$model[1][$i]." 缓存:".$cache[1][$i];
}
if (false !== is_array($res['cpu']['detail'])) $res['cpu']['detail'] = implode("
", $res['cpu']['detail']);
}

// uptime
if (false === ($str = @file("/proc/uptime"))) return false;
$str = explode(" ", implode("", $str));
$str = trim($str[0]);
$min = $str / 60;
$hours = $min / 60;
$days = floor($hours / 24);
$hours = floor($hours - ($days * 24));
$min = floor($min - ($days * 60 * 24) - ($hours * 60));
if ($days != 0) {$res['uptime'] = $days."天";}
if ($hours != 0) {$res['uptime'] .= $hours."小时";}
$res['uptime'] .= $min."分钟";

// memory
if (false === ($str = @file("/proc/meminfo"))) return false;
$str = implode("", $str);
preg_match_all("/memtotals{0,}:+s{0,}([d.]+).+?memfrees{0,}:+s{0,}([d.]+).+?swaptotals{0,}:+s{0,}([d.]+).+?swapfrees{0,}:+s{0,}([d.]+)/s", $str, $buf);

$res['memtotal'] = round($buf[1][0]/1024, 2);
$res['memfree'] = round($buf[2][0]/1024, 2);
$res['memused'] = ($res['memtotal']-$res['memfree']);
$res['mempercent'] = (floatval($res['memtotal'])!=0)?round($res['memused']/$res['memtotal']*100,2):0;

$res['swaptotal'] = round($buf[3][0]/1024, 2);
$res['swapfree'] = round($buf[4][0]/1024, 2);
$res['swapused'] = ($res['swaptotal']-$res['swapfree']);
$res['swappercent'] = (floatval($res['swaptotal'])!=0)?round($res['swapused']/$res['swaptotal']*100,2):0;

// load avg
if (false === ($str = @file("/proc/loadavg"))) return false;
$str = explode(" ", implode("", $str));
$str = array_chunk($str, 3);
$res['loadavg'] = implode(" ", $str[0]);

return $res;
}
/*-------------------------------------------------------------------------------------------------------------
系统参数探测 freebsd
--------------------------------------------------------------------------------------------------------------*/
function sys_freebsd()
{
//cpu
if (false === ($res['cpu']['num'] = get_key("hw.ncpu"))) return false;
$res['cpu']['detail'] = get_key("hw.model");

//load avg
if (false === ($res['loadavg'] = get_key("vm.loadavg"))) return false;
$res['loadavg'] = str_replace("{", "", $res['loadavg']);
$res['loadavg'] = str_replace("}", "", $res['loadavg']);

//uptime
if (false === ($buf = get_key("kern.boottime"))) return false;
$buf = explode(' ', $buf);
$sys_ticks = time() - intval($buf[3]);
$min = $sys_ticks / 60;
$hours = $min / 60;
$days = floor($hours / 24);
$hours = floor($hours - ($days * 24));
$min = floor($min - ($days * 60 * 24) - ($hours * 60));
if ($days != 0) $res['uptime'] = $days."天";
if ($hours != 0) $res['uptime'] .= $hours."小时";
$res['uptime'] .= $min."分钟";

//memory
if (false === ($buf = get_key("hw.physmem"))) return false;
$res['memtotal'] = round($buf/1024/1024, 2);
$buf = explode(" ", do_command("vmstat", ""));
$buf = explode(" ", trim($buf[2]));

$res['memfree'] = round($buf[5]/1024, 2);
$res['memused'] = ($res['memtotal']-$res['memfree']);
$res['mempercent'] = (floatval($res['memtotal'])!=0)?round($res['memused']/$res['memtotal']*100,2):0;

$buf = explode(" ", do_command("swapinfo", "-k"));
$buf = $buf[1];
preg_match_all("/([0-9]+)s+([0-9]+)s+([0-9]+)/", $buf, $bufarr);
$res['swaptotal'] = round($bufarr[1][0]/1024, 2);
$res['swapused'] = round($bufarr[2][0]/1024, 2);
$res['swapfree'] = round($bufarr[3][0]/1024, 2);
$res['swappercent'] = (floatval($res['swaptotal'])!=0)?round($res['swapused']/$res['swaptotal']*100,2):0;

return $res;
}

/*-------------------------------------------------------------------------------------------------------------
取得参数值 freebsd
--------------------------------------------------------------------------------------------------------------*/
function get_key($keyname)
{
return do_command('sysctl', "-n $keyname");
}

/*-------------------------------------------------------------------------------------------------------------
确定执行文件位置 freebsd
--------------------------------------------------------------------------------------------------------------*/
function find_command($commandname)
{
$path = array('/bin', '/sbin', '/usr/bin', '/usr/sbin', '/usr/local/bin', '/usr/local/sbin');
foreach($path as $p)
{
if (@is_executable("$p/$commandname")) return "$p/$commandname";
}
return false;
}

/*-------------------------------------------------------------------------------------------------------------
执行系统命令 freebsd
--------------------------------------------------------------------------------------------------------------*/
function do_command($commandname, $args)
{
$buffer = "";
if (false === ($command = find_command($commandname))) return false;
if ($fp = @popen("$command $args", 'r'))
{
while (!@feof($fp))
{
$buffer .= @fgets($fp, 4096);
}
return trim($buffer);
}
return false;
}

/*-------------------------------------------------------------------------------------------------------------
系统参数探测 windows
--------------------------------------------------------------------------------------------------------------*/
function sys_windows()
{
//$phpos=php_os;
$sysinfo['uptime'] ="对不起windows系统不支持";

}
?>

相关文章

精彩推荐