当前位置:首页 > 综合实例 > 列表

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

发布:smiling 来源: PHP粉丝网  添加日期:2014-09-09 11:33:46 浏览: 评论:0 

一、本程序基于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.对于购买虚拟主机的用户,用于测试服务器性能.

以下两变量可以修改配制,如果这个探针你是用来验示的,你可以在下面变量中输入相关信息,会显示在页面底部.

php 针探代码如下:

  1. header("content-type: text/html; charset=utf-8"); 
  2.     error_reporting(e_error | e_warning | e_parse); 
  3.  ob_start(); 
  4.       
  5.     $valint = (false == emptyempty($_post['pint']))?$_post['pint']:"未测试"; 
  6.     $valfloat = (false == emptyempty($_post['pfloat']))?$_post['pfloat']:"未测试"; 
  7.     $valio = (false == emptyempty($_post['pio']))?$_post['pio']:"未测试"; 
  8.     $mysqlreshow = "none"; 
  9.     $mailreshow = "none"; 
  10.     $funreshow = "none"; 
  11.     $opreshow = "none"; 
  12.     $sysreshow = "none"; 
  13. //============   定义常量 用于替换模板输出变量  ======================= 
  14.   //define("yes", "<span class='resyes'>yes</span>"); 
  15.   //define("no", "<span class='resno'>no</span>"); 
  16.   define("yes", "<span class='resyes'>√</span>"); 
  17.   define("no", "<span class='resno'>×</span>"); 
  18.  
  19. //================================================================= 
  20.     define("icon", "<span class='icon'>2</span>&nbsp;"); 
  21.     $phps教程elf = $_server[php_self] ? $_server[php_self] : $_server[script_name]; 
  22.     define("phpself", preg_replace("/(.{0,}?/+)/", "", $phpself)); 
  23.       
  24.     if ($_get['act'] == "phpinfo") 
  25.     { 
  26.         phpinfo(); 
  27.         exit(); 
  28.     } 
  29.     elseif($_post['act'] == "整型测试") 
  30.     { 
  31.         $valint = test_int(); 
  32.     } 
  33.     elseif($_post['act'] == "浮点测试") 
  34.     { 
  35.         $valfloat = test_float(); 
  36.     } 
  37.     elseif($_post['act'] == "io测试") 
  38.     { 
  39.         $valio = test_io(); 
  40.     } 
  41.     elseif($_post['act'] == "connect") 
  42.     { 
  43.         $mysqlreshow = "show"; 
  44.         $mysqlre = "mysql连接测试结果:"; 
  45.         $mysqlre .= (false !== @mysql_connect($_post['mysqlhost'], $_post['mysqluser'], $_post['mysqlpassword']))?"mysql服务器连接正常, ":"mysql服务器连接失败, "; 
  46.         $mysqlre .= "数据库教程 <b>".$_post['mysqldb']."</b> "; 
  47.         $mysqlre .= (false != @mysql_select_db($_post['mysqldb']))?"连接正常":"连接失败"; 
  48.     } 
  49.     elseif($_post['act'] == "sendmail") 
  50.     { 
  51.         $mailreshow = "show"; 
  52.         $mailre = "mail邮件发送测试结果:发送"; 
  53.         $mailre .= (false !== @mail($_post["mailreceiver"], "uenuprobe mail server test.", "this email is sent by uenuprobe. copyright uenucom http://www.uenu.com"))?"完成":"失败"; 
  54.     } 
  55.     elseif($_post['act'] == "function_check") 
  56.     { 
  57.         $funreshow = "show"; 
  58.         $funre = "函数 <b>".$_post['funname']."</b> 支持状况检测结果:".isfun($_post['funname']); 
  59.     } 
  60.     elseif($_post['act'] == "configuration_check") 
  61.     { 
  62.         $opreshow = "show"; 
  63.         $opre = "配置参数 <b>".$_post['opname']."</b> 检测结果:".getcon($_post['opname']); 
  64.     } 
  65.   
  66. //======================================================================== 
  67.  
  68. //======================================================================== 
  69.    switch (php_os) 
  70.     { 
  71.         case "linux": 
  72.         $sysreshow = (false != ($sysinfo = sys_linux()))?"show":"none"; 
  73.         break; 
  74.         case "freebsd": 
  75.         $sysreshow = (false != ($sysinfo = sys_freebsd()))?"show":"none"; 
  76.         break; 
  77.   case "windows": 
  78.         //$sysreshow = (false != ($sysinfo = sys_windows()))?"show":"none"; 
  79.   $sysinfo['uptime'] ="对不起windows系统不支持"; 
  80.         break; 
  81.         default: 
  82.         break; 
  83.     } 
  84.       
  85. //======================================================================== 
  86.  
  87. ?> 
  88. <!doctype html public "-//w3c//dtd xhtml 1.0 transitional//en" "http://www.w3.org/tr/xhtml1/dtd/xhtml1-transitional.dtd"> 
  89. <html xmlns="http://www.w3.org/1999/xhtml"> 
  90. <head> 
  91. <meta http-equiv="content-type" content="text/html; charset=utf-8" /> 
  92. <link type="text/css" rel="stylesheet" href="common/control.css"> 
  93. <script type="text/网页特效" language="javascript" src="common/admin.otable.js"></script> 
  94. <script type="text/javascript" language="javascript" src="common/include.func.js"></script> 
  95. <title>服务器信息</title> 
  96. <style type="text/css"> 
  97. .resyes { 
  98.  font-size: 12px; 
  99.  color: #090; 
  100.  font-weight:bold; 
  101.  font-family: verdana; 
  102. }  
  103. .resno { 
  104.  font-size: 12px; 
  105.  color: #f00; 
  106.  font-weight:bold; 
  107.  font-family: verdana; 
  108. } 
  109. .check00{ 
  110.  color: #630;  
  111. } 
  112. </style> 
  113. <script type="text/javascript"> 
  114. window.onload=function(){ 
  115.  var otable=document.getelementbyid("otable"); 
  116.  for(var i=0;i<otable.rows.length;i++){ 
  117.   if(i%2==0) //偶数行时 
  118.    otable.rows[i].classname="altrow"; 
  119.  } 
  120.   
  121.  var otable2=document.getelementbyid("otable2"); 
  122.  for(var i=0;i<otable2.rows.length;i++){ 
  123.   if(i%2==0) //偶数行时 
  124.    otable2.rows[i].classname="altrow"; 
  125.  } 
  126.   
  127.  var otable3=document.getelementbyid("otable3"); 
  128.  for(var i=0;i<otable3.rows.length;i++){ 
  129.   if(i%2==0) //偶数行时 
  130.    otable3.rows[i].classname="altrow"; 
  131.  } 
  132.   
  133.  var otable4=document.getelementbyid("otable4"); 
  134.  for(var i=0;i<otable4.rows.length;i++){ 
  135.   if(i%2==0) //偶数行时 
  136.    otable4.rows[i].classname="altrow"; 
  137.  } 
  138.   
  139.  var otable5=document.getelementbyid("otable5"); 
  140.  for(var i=0;i<otable5.rows.length;i++){ 
  141.   if(i%2==0) //偶数行时 
  142.    otable5.rows[i].classname="altrow"; 
  143.  } 
  144. } 
  145. </script> 
  146. </head> 
  147.  
  148. <body class="contentbody"> 
  149. <div class="maindiv"> 
  150. <span class="ctitle">服务器信息</span> 
  151. <ul class="cmenu"> 
  152.  <li><a href="server_info.php?action=">服务器特征</a></li> 
  153.  <li><a href="server_info.php?action=phpinfo">php基本特征</a></li> 
  154.  <li><a href="server_info.php?action=otherinfo">php组件支持状况</a></li> 
  155.  <li><a href="server_info.php?action=dbinfo">数据库支持状况</a></li> 
  156.  <li><a href="server_info.php?action=testinfo">性能检测</a></li> 
  157.     <li><a href="server_moreinfo.php">服务器详细信息</a></li> 
  158. </ul> 
  159.  
  160. <div class="concontent"> 
  161. <?php 
  162. switch($_get['action']){ 
  163.  case '': 
  164. ?> 
  165. <table cellpadding="0" cellspacing="0" border="0" width="100%" class="ctable" id="otable" align="center"> 
  166. <tr> 
  167.  <th colspan="2" align="center">服务器特征</th> 
  168. </tr> 
  169. <tr> 
  170.  <td width="150">服务器时间</td> 
  171.     <td><?php echo gmdate("y年m月d日 h:i:s",time());?>&nbsp;(格林威治标准时间)&nbsp;&nbsp;<?php echo gmdate("y年n月j日 h:i:s",time()+8*3600)?>&nbsp;(北京时间)</td> 
  172. </tr> 
  173. <tr> 
  174.     <td>服务器域名</td> 
  175.     <td><?php echo("<a href="http://$_server[server_name]"  title=访问此域名 target=_blank>$_server[server_name]</a>"); ?></td> 
  176. </tr> 
  177. <tr> 
  178.  <td>服务器ip地址</td> 
  179.     <td><?php $host_ip=gethostbyname($_server["server_name"]); echo($host_ip);?></td> 
  180. </tr> 
  181. <tr> 
  182.  <td>服务器操作系统</td> 
  183.     <td><?php $os = explode(" ", php_uname()); echo $os[0]; echo "&nbsp;&nbsp;"; 
  184.  if ($os[0] =="windows") {echo "主机名称:".$os[2];} else {echo "内核版本:".$os[2];}?></td> 
  185. </tr> 
  186. <tr> 
  187.  <td>服务器运行时间</td> 
  188.     <td><?php if ($sysinfo['uptime']!=""){ echo $sysinfo['uptime'];} else  echo "对不起windows系统不支持"; ?></td> 
  189. </tr> 
  190. <tr> 
  191.  <td>服务器操作系统文字编码</td> 
  192.     <td><?php echo($_server["http_accept_language"]); ?></td> 
  193. </tr> 
  194. <tr> 
  195.  <td>服务器解译引擎</td> 
  196.     <td><?php echo($_server["server_software"]); ?></td> 
  197. </tr> 
  198. <tr> 
  199.  <td>web服务端口</td> 
  200.     <td><?php echo($_server["server_port"]); ?></td> 
  201. </tr> 
  202. <tr> 
  203.  <td>服务器管理员</td> 
  204.     <td><a href="mailto:<?php echo $_server['server_admin'];?>"><?php echo $_server['server_admin'];?></a></td> 
  205. </tr> 
  206. <tr> 
  207.  <td>本文件路径</td> 
  208.     <td><?php echo($_server["script_filename"]);?></td> 
  209. </tr> 
  210. <tr> 
  211.  <td>服务端剩余空间</td> 
  212.     <td><?php echo intval(diskfreespace(".") / (1024 * 1024)).'mb';?></td> 
  213. </tr> 
  214. <tr> 
  215.  <td>系统当前用户名</td> 
  216.     <td><?php echo @get_current_user();?></td> 
  217. </tr> 
  218. </table> 
  219. <br /> 
  220. <!-- 仅在windows 环境中输出--> 
  221. <?php if(("show" !==$sysreshow) & ("0"!= $_env["number_of_processors"])& (""!= $_env["number_of_processors"])){?> 
  222. <div class="info3">服务器处理器</div><div class="info4">cpu个数:<?php echo $_env["number_of_processors"]?> <?php echo "&nbsp;&nbsp;".$_env["processor_identifier"]; echo "&nbsp;&nbsp;运行级别:".$_env["processor_level"]; echo "&nbsp;&nbsp;版本:".$_env["processor_revision"];?></div> 
  223. <?php }?> 
  224. <!-- 仅在windows 环境中输出结束--> 
  225. <!-- linux or unix 参数输出--> 
  226. <?php if(("show"==$sysreshow)&("0" != $sysinfo['cpu']['num'])&("" != $sysinfo['cpu']['num'])){?> 
  227. <div class="info3">服务器处理器</div><div class="info4">cpu个数:<?php echo $sysinfo['cpu']['num']?> &nbsp;&nbsp;<?php echo $sysinfo['cpu']['detail']?></div> 
  228. <?php }?> 
  229. <?php if("show"==$sysreshow){?> 
  230. <div class="info3">内存使用状况</div><div class="info4"> 
  231. <?php echo $sysinfo['memtotal']?>m, 已使用 
  232. <?php echo $sysinfo['memused']?>m, 空闲 
  233. <?php echo $sysinfo['memfree']?>m, 使用率 
  234. <?php echo $sysinfo['mempercent']?>%</div> 
  235. <div class="info3">swap区</div><div class="info4"> 
  236. 共<?php echo $sysinfo['swaptotal']?>m, 已使用 
  237. <?php echo $sysinfo['swapused']?>m, 空闲 
  238. <?php echo $sysinfo['swapfree']?>m, 使用率 
  239. <?php echo $sysinfo['swappercent']?>%</div> 
  240. <div class="info3">系统平均负载</div><div class="info4"><?php echo $sysinfo['loadavg']?></div> 
  241. <?php }?> 
  242. <!-- linux or unix 参数输出结束--> 
  243. <?php 
  244.   break; 
  245.  case 'phpinfo': 
  246. ?> 
  247. <table cellpadding="0" cellspacing="0" border="0" width="100%" class="ctable" id="otable" align="center"> 
  248. <tr> 
  249.  <th colspan="4" align="center">php基本特征</th> 
  250. </tr> 
  251. <tr> 
  252.  <td width="30%">php版本</td> 
  253.     <td width="20%"><?php echo php_version;?></td> 
  254.  <td width="30%">php运行方式</td> 
  255.     <td><?php /**strtoupper(php_sapi_name());**/ echo ucwords(php_sapi_name());?></td> 
  256. </tr> 
  257. <tr> 
  258.  <td>支持zend编译运行&nbsp;&nbsp;(<?php if($zend="yes") {echo "版本:";echo zend_version();}?>)</td> 
  259.     <td><?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?></td> 
  260.  <td>运行于安全模式</td> 
  261.     <td><?php if(get_cfg_var("safemode")){echo("是");}else echo("否"); ?></td> 
  262. </tr> 
  263. <tr> 
  264.  <td>自动定义全局变量&nbsp;register_globals</td> 
  265.     <td><?php echo @get_cfg_var("register_globals")?'on' : 'off';?></td> 
  266.  <td>允许使用url打开文件allow_url_fopen</td> 
  267.     <td><?php echo get_cfg_var("allow_url_fopen")=="1"?yes:no?></td> 
  268. </tr> 
  269. <tr> 
  270.  <td>允许动态加载链接库enable_dl</td> 
  271.     <td><?php echo get_cfg_var("enable_dl")=="1"?yes:no?></td> 
  272.  <td>显示错误信息&nbsp;display_errors</td> 
  273.     <td><?php echo get_cfg_var("display_errors")=="1"?yes:no?></td> 
  274. </tr> 
  275. <tr> 
  276.  <td>短标记&lt;? ?&gt;支持</td> 
  277.     <td><?php echo @get_cfg_var("short_open_tag")?yes:no;?></td> 
  278.  <td>标记&lt;% %&gt;支持</td> 
  279.     <td><?php echo @get_cfg_var("asp教程_tags")?yes:no;?></td> 
  280. </tr> 
  281. <tr> 
  282.  <td>cookie支持</td> 
  283.     <td><?php echo isset($http_cookie_vars)?yes:no;?></td> 
  284.  <td>session支持</td> 
  285.     <td><?php echo function_exists(session_start)?yes:no;?></td> 
  286. </tr> 
  287. <tr> 
  288.  <td>浮点运算有效数字显示位数</td> 
  289.     <td><?php echo @get_cfg_var("precision");?></td> 
  290.  <td>强制y2k兼容</td> 
  291.     <td><?php echo @get_cfg_var("y2k_compliance")?yes:no;?></td> 
  292. </tr> 
  293. <tr> 
  294.  <td>被禁用的函数disable_functions</td> 
  295.     <td><?php $disused = @get_cfg_var("disable_functions")?"1":"0";  
  296. if($disused =="1") 
  297. {echo '<a href="#" title=" 
  298. '.@get_cfg_var("disable_functions").' 
  299. ">'."more".'</a>';}  
  300. else {echo "none";}?></td> 
  301.  <td>程序最长运行时间max_execution_time</td> 
  302.     <td><?php echo(get_cfg_var("max_execution_time")."秒");?></td> 
  303. </tr> 
  304. <tr> 
  305.  <td>程序最多允许使用内存量 memory_limit</td> 
  306.     <td><?php echo @get_cfg_var("memory_limit");?></td> 
  307.  <td>post最大字节数&nbsp;post_max_size</td> 
  308.     <td><?php echo @get_cfg_var("post_max_size");?></td> 
  309. </tr> 
  310. <tr> 
  311.  <td>允许最大上传文件&nbsp;upload_max_filesize</td> 
  312.     <td><?php echo @get_cfg_var("file_uploads")?@get_cfg_var("upload_max_filesize") : $error;?></td> 
  313.  <td>php信息 phpinfo</td> 
  314.     <td><?php echo (false!==eregi("phpinfo",$disfuns))?no:"<a href='$phpself?act=phpinfo' target='_blank' class='static'>phpinfo</a>"?></td> 
  315. </tr> 
  316. <tr> 
  317.  <td>html错误显示</td> 
  318.     <td><?php echo @get_cfg_var("html_errors")?yes:no;?></td> 
  319.  <td>调试器地址/端口</td> 
  320.     <td><?php echo $debugerhost=@get_cfg_var("debugger.host")?yes:no;if ($debugerhost =="yes") {echo @get_cfg_var("debugger.port")?yes:no;}?></td> 
  321. </tr> 
  322. <tr> 
  323.  <td>smtp支持</td> 
  324.     <td><?php echo @get_cfg_var("smtp")?yes:no;?></td> 
  325.  <td>smtp地址</td> 
  326.     <td><?php echo @get_cfg_var("smtp");?></td> 
  327. </tr> 
  328. </table> 
  329. <?php 
  330.   break; 
  331.  case 'otherinfo':  
  332. ?> 
  333. <table cellpadding="0" cellspacing="0" border="0" width="100%" class="ctable" id="otable" align="center"> 
  334. <tr> 
  335.  <th colspan="4" align="center">php组件支持状况</th> 
  336. </tr> 
  337. <tr> 
  338.  <td width="30%">拼写检查 aspell library</td> 
  339.     <td width="20%"><?php echo function_exists(aspell_new)?yes:no;?></td> 
  340.     <td width="30%">高精度数学运算 bcmath</td> 
  341.     <td><?php echo function_exists(bcadd)?yes:no;?></td> 
  342. </tr> 
  343. <tr> 
  344.  <td>历法运算 calendar</td> 
  345.     <td><?php echo function_exists(jdtofrench)?yes:no;?></td> 
  346.  <td>图形处理 gd library</td> 
  347.     <td><?php echo function_exists(imageline)?yes:no;?></td> 
  348. </tr> 
  349. <tr> 
  350.  <td>类/对象支持</td> 
  351.     <td><?php echo function_exists(class_exists)?yes:no;?></td> 
  352.  <td>字串类型检测支持</td> 
  353.     <td><?php echo function_exists(ctype_upper)?yes:no;?></td> 
  354. </tr> 
  355. <tr> 
  356.  <td>iconv编码支持</td> 
  357.     <td><?php echo function_exists(iconv)?yes:no;?></td> 
  358.  <td>mcrypt加密处理支持</td> 
  359.     <td><?php echo function_exists(mcrypt_cbc)?yes:no;?></td> 
  360. </tr> 
  361. <tr> 
  362.  <td>哈稀计算 mhash</td> 
  363.     <td><?php echo function_exists(mhash)?yes:no;?></td> 
  364.  <td>openssl支持</td> 
  365.     <td><?php echo function_exists(openssl_open)?yes:no;?></td> 
  366. </tr> 
  367. <tr> 
  368.  <td>prel相容语法 pcre</td> 
  369.     <td><?php echo function_exists(preg_match)?yes:no;?></td> 
  370.  <td>正则扩展(兼容perl)支持</td> 
  371.     <td><?php echo function_exists(preg_match)?yes:no;?></td> 
  372. </tr> 
  373. <tr> 
  374.  <td>socket支持</td> 
  375.     <td><?php echo function_exists(fsockopen)?yes:no;?></td> 
  376.  <td>流媒体支持</td> 
  377.     <td><?php echo function_exists(stream_context_create)?yes:no;?></td> 
  378. </tr> 
  379. <tr> 
  380.  <td>tokenizer支持</td> 
  381.     <td><?php echo function_exists(token_name)?yes:no;?></td> 
  382.  <td>url支持</td> 
  383.     <td><?php echo function_exists(parse_url)?yes:no;?></td> 
  384. </tr> 
  385. <tr> 
  386.  <td>wddx支持(web distributed data exchange)</td> 
  387.     <td><?php echo function_exists(wddx_add_vars)?yes:no;?></td> 
  388.  <td>压缩文件支持(zlib)</td> 
  389.     <td><?php echo function_exists(gzclose)?yes:no;?></td> 
  390. </tr> 
  391. <tr> 
  392.  <td>xml解析</td> 
  393.     <td><?php echo function_exists(xml_set_object)?yes:no;?></td> 
  394.  <td>ftp</td> 
  395.     <td><?php echo function_exists(ftp_login)?yes:no;?></td> 
  396. </tr> 
  397. <tr> 
  398.  <td>目录存取协议(ldap)支持</td> 
  399.     <td><?php echo function_exists(ldap_close)?yes:no;?></td> 
  400.  <td>yellow page系统支持</td> 
  401.     <td><?php echo function_exists(yp_match)?yes:no;?></td> 
  402. </tr> 
  403. <tr> 
  404.  <td>php和java综合支持</td> 
  405.     <td><?php echo function_exists(java_last_exception_get)?yes:no;?></td> 
  406.  <td>imap电子邮件系统支持</td> 
  407.     <td><?php echo function_exists(imap_close)?yes:no;?></td> 
  408. </tr> 
  409. <tr> 
  410.  <td>snmp网络管理协议支持</td> 
  411.     <td><?php echo function_exists(snmpget)?yes:no;?></td> 
  412.  <td>vmailmgr邮件处理支持</td> 
  413.     <td><?php echo function_exists(vm_adduser)?yes:no;?></td> 
  414. </tr> 
  415. <tr> 
  416.  <td>pdf文档支持</td> 
  417.     <td><?php echo function_exists(pdf_close)?yes:no;?></td> 
  418.  <td>fdf表单资料格式支持</td> 
  419.     <td><?php echo function_exists(fdf_close)?yes:no;?></td> 
  420. </tr> 
  421. </table> 
  422. <?php 
  423.   break; 
  424.  case 'dbinfo':  
  425. ?> 
  426. <table cellpadding="0" cellspacing="0" border="0" width="100%" class="ctable" id="otable" align="center"> 
  427. <tr> 
  428.  <th colspan="4" align="center">数据库支持状况</th> 
  429. </tr> 
  430. <tr> 
  431.  <td width="30%">mysql数据库支持</td> 
  432.     <td width="20%"><?php echo function_exists(mysql_close)?yes:no;?></td> 
  433.  <td width="30%">mysql数据库持续连接</td> 
  434.     <td><?php echo @get_cfg_var("mysql.allow_persistent")?yes:no;?></td> 
  435. </tr> 
  436. <tr> 
  437.  <td>mysql最大连接数</td> 
  438.     <td><?php echo @get_cfg_var("mysql.max_links")==-1 ? "不限" : @get_cfg_var("mysql.max_links");?></td> 
  439.  <td>odbc数据库连接</td> 
  440.     <td><?php echo function_exists(odbc_close)?yes:no;?></td> 
  441. </tr> 
  442. <tr> 
  443.  <td>sql server数据库支持</td> 
  444.     <td><?php echo function_exists(mssql_close)?yes:no;?></td> 
  445.  <td>msql数据库支持</td> 
  446.     <td><?php echo function_exists(msql_close)?yes:no;?></td> 
  447. </tr> 
  448. <tr> 
  449.  <td>postgre sql数据库支持</td> 
  450.     <td><?php echo function_exists(pg_close)?yes:no;?></td> 
  451.  <td>oracle数据库支持</td> 
  452.     <td><?php echo function_exists(ora_close)?yes:no;?></td> 
  453. </tr> 
  454. <tr> 
  455.  <td>oracle 8 数据库支持</td> 
  456.     <td><?php echo function_exists(ocilogoff)?yes:no;?></td> 
  457.  <td>dbase数据库支持</td> 
  458.     <td><?php echo function_exists(dbase_close)?yes:no;?></td> 
  459. </tr> 
  460. <tr> 
  461.  <td>sybase数据库支持</td> 
  462.     <td><?php echo function_exists(sybase_close)?yes:no;?></td> 
  463.  <td>dba数据库支持</td> 
  464.     <td><?php echo function_exists(dba_close)?yes:no;?></td> 
  465. </tr> 
  466. <tr> 
  467.  <td>dbm数据库支持</td> 
  468.     <td><?php echo function_exists(dbmclose)?yes:no;?></td> 
  469.  <td>dbx数据库支持</td> 
  470.     <td><?php echo function_exists(dbx_close)?yes:no;?></td> 
  471. </tr> 
  472. <tr> 
  473.  <td>db++数据库支持</td> 
  474.     <td><?php echo function_exists(dbplus_close)?yes:no;?></td> 
  475.  <td>frontbase数据库支持</td> 
  476.     <td><?php echo function_exists(fbsql_close)?yes:no;?></td> 
  477. </tr> 
  478. <tr> 
  479.  <td>filepro数据库支持</td> 
  480.     <td><?php echo function_exists(filepro)?yes:no;?></td> 
  481.  <td>informix数据库支持</td> 
  482.     <td><?php echo function_exists(ifx_close)?yes:no;?></td> 
  483. </tr> 
  484. <tr> 
  485.  <td>lotus notes数据库支持</td> 
  486.     <td><?php echo function_exists(notes_version)?yes:no;?></td> 
  487.  <td>interbase数据库支持</td> 
  488.     <td><?php echo function_exists(ibase_close)?yes:no;?></td> 
  489. </tr> 
  490. <tr> 
  491.  <td>ingres数据库支持</td> 
  492.     <td><?php echo function_exists(ingres_close)?yes:no;?></td> 
  493.  <td>hyperwave数据库支持</td> 
  494.     <td><?php echo function_exists(hw_close)?yes:no;?></td> 
  495. </tr> 
  496. <tr> 
  497.  <td>ovrimos sql数据库连接支持</td> 
  498.     <td><?php echo function_exists(ovrimos_close)?yes:no;?></td> 
  499.  <td>sesam数据库连接支持</td> 
  500.     <td><?php echo function_exists(sesam_disconnect)?yes:no;?></td> 
  501. </tr> 
  502. <tr> 
  503.  <td>sqlite数据库连接支持</td> 
  504.     <td><?php echo function_exists(sqlite_close)?yes:no;?></td> 
  505.  <td>adabas d数据库连接支持</td> 
  506.     <td><?php echo function_exists(ada_close)?yes:no;?></td> 
  507. </tr> 
  508. </table> 
  509. <?php 
  510.   break; 
  511.  case 'testinfo':  
  512. ?> 
  513. <form action="<?php echo phpself."?action=testinfo&icon=$icon&#testinfo1"?>" method="post"> 
  514. <!--服务器性能检测--> 
  515. <div id="testinfo1"> 
  516. <table cellpadding="0" cellspacing="0" border="0" width="100%" class="ctable" id="otable" align="center"> 
  517. <tr><th colspan="4">服务器性能检测</th></tr> 
  518. <tr align="center"> 
  519.  <td width="25%">参照对象</td> 
  520.  <td width="25%">整数运算能力检测(1+1运算300万次)</td> 
  521.  <td width="25%">浮点运算能力检测(开平方300万次)</td> 
  522.  <td width="25%">数据i/o能力检测(读取10k文件1万次)</td> 
  523. </tr> 
  524. <tr align="center"> 
  525.  <td>红色主机单线型(双核)</td> 
  526.  <td>0.33 秒</td> 
  527.  <td>0.95 秒</td> 
  528.  <td>0.03 秒</td> 
  529. </tr> 
  530. <tr align="center"> 
  531.  <td>红色主机双线型(四核)</td> 
  532.  <td>0.25 秒</td> 
  533.  <td>0.79 秒</td> 
  534.  <td>0.03 秒</td> 
  535. </tr> 
  536. <tr align="center"> 
  537.  <td>xeon(tm) 2.80*2+4g+centos 5.2</td> 
  538.  <td>0.068秒</td> 
  539.  <td>0.086秒</td> 
  540.  <td>小于0.100秒</td> 
  541. </tr> 
  542. <tr align="center"> 
  543.  <td>xeon(tm) 2.80ghz+2g+freebsd 4.0</td> 
  544.  <td>0.501秒</td> 
  545.  <td>0.694秒</td> 
  546.  <td>小于0.100秒</td> 
  547. </tr> 
  548. <tr align="center" height="50"> 
  549.  <td>本台服务器</td> 
  550.  <td><span style="color:#390"><?php echo $valint;?></span> <input type="submit" value="整型测试" name="act" class="button" /></td> 
  551.  <td><span style="color:#06c"><?php echo $valfloat;?></span> <input type="submit" value="浮点测试" name="act" class="button" /></td> 
  552.  <td><span style="color:#f60"><?php echo $valio;?></span> <input type="submit" value="io测试" name="act" class="button" /></td> 
  553. </tr> 
  554. </table> 
  555. </div> 
  556. <input type="hidden" name="pint" value="<?php echo $valint;?>" /> 
  557. <input type="hidden" name="pfloat" value="<?php echo $valfloat;?>" /> 
  558. <input type="hidden" name="pio" value="<?php echo $valio;?>" /> 
  559. </form> 
  560. <?php 
  561. $ismysql = (false !== function_exists("mysql_query"))?"":" disabled"; 
  562. $ismail = (false !== function_exists("mail"))?"":" disabled"; 
  563. ?> 
  564. <br /> 
  565. <form action="<?php echo phpself."?action=testinfo&icon=$icon&#testinfo2"?>" method="post"> 
  566. <div id="testinfo2"> 
  567. <!--mysql数据库连接检测--><br /><br /> 
  568. <table cellpadding="0" cellspacing="0" border="0" width="80%" class="ctable" id="otable2" align="center"> 
  569. <tr><th colspan="2">mysql数据库连接检测</th></tr> 
  570. <tr> 
  571.  <td width="30%" align="right">mysql服务器:</td> 
  572.  <td><input name="mysqlhost" type="text" id="mysqlhost" value="localhost" size="80" class="text2" /></td> 
  573. </tr> 
  574. <tr> 
  575.  <td align="right">mysql用户名:</td> 
  576.  <td><input name="mysqluser" type="text" id="mysqluser" value="root" size="80" class="text2" /></td> 
  577. </tr> 
  578. <tr> 
  579.  <td align="right">mysql用户密码:</td> 
  580.  <td><input type="text" name="mysqlpassword" <?php echo $ismysql?> size="80" class="text2" /></td> 
  581. </tr> 
  582. <tr> 
  583.  <td align="right">mysql数据库名称:</td> 
  584.  <td><input type="text" name="mysqldb" size="80" class="text2" /></td> 
  585. </tr> 
  586. <tr> 
  587.  <td align="right" height="30"><input type="submit" class="button" value="connect" <?php echo $ismysql?>  name="act" /></td> 
  588.     <td><div class="check00"><?php if("show"==$mysqlreshow){echo $mysqlre;}?> </div></td> 
  589. </tr> 
  590. </table> 
  591. </div> 
  592. </form> 
  593. <br /><br /> 
  594. <form action="<?php echo phpself."?action=testinfo&icon=$icon&#testinfo5"?>" method="post"> 
  595. <div id="testinfo5"> 
  596. <!--邮件发送检测--> 
  597. <table cellpadding="0" cellspacing="0" border="0" width="80%" class="ctable" id="otable3" align="center"> 
  598. <tr><th colspan="2">php配置参数状况</th></tr> 
  599. <tr> 
  600.     <td width="30%" align="right">请输入您要检测的参数名称:</td> 
  601.     <td><input type="text" name="opname" size="80" class="text2" /></td> 
  602. </tr> 
  603. <tr> 
  604.     <td align="right" height="30"><input type="submit" class="button" value="configuration_check" name="act" /></td> 
  605.     <td><div class="check00"><?php if("show"==$opreshow){echo $opre;}?></div></td> 
  606. </tr> 
  607. </table> 
  608. </div> 
  609. </form> 
  610. <br /><br /> 
  611. <form action="<?php echo phpself."?action=testinfo&icon=$icon&#testinfo3"?>" method="post"> 
  612. <div id="testinfo3"> 
  613. <!--函数检测--> 
  614. <table cellpadding="0" cellspacing="0" border="0" width="80%" class="ctable" id="otable4" align="center"> 
  615. <tr><th colspan="2">函数检测</th></tr> 
  616. <tr> 
  617.  <td width="30%" align="right">请输入您要检测的函数名称:</td> 
  618.  <td><input type="text" name="funname" size="80" class="text2" /></td> 
  619. </tr> 
  620. <tr> 
  621.  <td align="right" height="30"><input type="submit" class="button" value="function_check" name="act" /></td> 
  622.     <td><div class="check00"><?php if("show"==$funreshow){echo $funre;}?> </div></td> 
  623. </tr> 
  624. </table> 
  625. </div> 
  626. </form> 
  627. <br /><br /> 
  628. <form action="<?php echo phpself."?action=testinfo&icon=$icon&#testinfo4"?>" method="post"> 
  629. <div id="testinfo4"> 
  630. <!--邮件发送检测--> 
  631. <table cellpadding="0" cellspacing="0" border="0" width="80%" class="ctable" id="otable5" align="center"> 
  632. <tr><th colspan="2">mail邮件发送测试</th></tr> 
  633. <tr> 
  634.     <td width="30%" align="right">请输入您要检测的邮件地址:</td> 
  635.     <td><input type="text" name="mailreceiver" size="80" <?php echo $ismail?> class="text2" /></td> 
  636. </tr> 
  637. <tr> 
  638.     <td align="right" height="30"><input type="submit" class="button" value="sendmail" <?php echo $ismail?>  name="act" /></td> 
  639.     <td><div class="check00"><?php if("show"==$mailreshow){echo $mailre;}?></div></td> 
  640. </tr> 
  641. </table> 
  642. </div> 
  643. </form> 
  644.  
  645. <?php  
  646.   break; 
  647. }?> 
  648. </div> 
  649.  
  650. </div> 
  651. </body> 
  652. </html> 
  653. <?php 
  654.  
  655. /*============================================================= 
  656.     函数库 
  657. =============================================================*/ 
  658.  
  659. /*------------------------------------------------------------------------------------------------------------- 
  660.     检测函数支持 
  661. --------------------------------------------------------------------------------------------------------------*/ 
  662.     function isfun($funname) 
  663.     { 
  664.         return (false !== function_exists($funname))?yes:no; 
  665.     } 
  666. /*------------------------------------------------------------------------------------------------------------- 
  667.     检测php设置参数 
  668. --------------------------------------------------------------------------------------------------------------*/ 
  669.     function getcon($varname) 
  670.     { 
  671.         switch($res = get_cfg_var($varname)) 
  672.         { 
  673.             case 0: 
  674.             return no; 
  675.             break; 
  676.             case 1: 
  677.             return yes; 
  678.             break; 
  679.             default: 
  680.             return $res; 
  681.             break; 
  682.         } 
  683.           
  684.     } 
  685. /*------------------------------------------------------------------------------------------------------------- 
  686.     整数运算能力测试 
  687. --------------------------------------------------------------------------------------------------------------*/ 
  688.     function test_int() 
  689.     { 
  690.         $timestart = gettimeofday(); 
  691.         for($i = 0; $i <= 3000000; $i++); 
  692.         { 
  693.             $t = 1+1; 
  694.         } 
  695.         $timeend = gettimeofday(); 
  696.         $time = ($timeend["usec"]-$timestart["usec"])/1000000+$timeend["sec"]-$timestart["sec"]; 
  697.         $time = round($time, 6)."秒"; 
  698.         return $time; 
  699.     } 
  700. /*------------------------------------------------------------------------------------------------------------- 
  701.     浮点运算能力测试 
  702. --------------------------------------------------------------------------------------------------------------*/ 
  703.     function test_float() 
  704.     { 
  705.         $t = pi(); 
  706.         $timestart = gettimeofday(); 
  707.         for($i = 0; $i < 3000000; $i++); 
  708.         { 
  709.             sqrt($t); 
  710.         } 
  711.         $timeend = gettimeofday(); 
  712.         $time = ($timeend["usec"]-$timestart["usec"])/1000000+$timeend["sec"]-$timestart["sec"]; 
  713.         $time = round($time, 6)."秒"; 
  714.         return $time; 
  715.     } 
  716. /*------------------------------------------------------------------------------------------------------------- 
  717.     数据io能力测试 
  718. --------------------------------------------------------------------------------------------------------------*/ 
  719.     function test_io() 
  720.     { 
  721.         $fp = @fopen(phpself, "r"); 
  722.         $timestart = gettimeofday(); 
  723.         for($i = 0; $i < 10000; $i++) 
  724.         { 
  725.             @fread($fp, 10240); 
  726.             @rewind($fp); 
  727.         } 
  728.         $timeend = gettimeofday(); 
  729.         @fclose($fp); 
  730.         $time = ($timeend["usec"]-$timestart["usec"])/1000000+$timeend["sec"]-$timestart["sec"]; 
  731.         $time = round($time, 6)."秒"; 
  732.         return($time); 
  733.     } 
  734. /*------------------------------------------------------------------------------------------------------------- 
  735.     比例条 
  736. --------------------------------------------------------------------------------------------------------------*/ 
  737.     function bar($percent) 
  738.     { 
  739.     echo '<br/><ul class="bar"> 
  740.  <li style="width:'; 
  741.  echo $percent."%">"; 
  742.     echo '&nbsp;</li> 
  743.     </ul>'; 
  744. } 
  745. /*------------------------------------------------------------------------------------------------------------- 
  746.     根据不同系统取得cpu相关信息 
  747. --------------------------------------------------------------------------------------------------------------*/ 
  748.  switch(php_os) { 
  749.   case "linux": 
  750.    $sysreshow = (false !== ($sysinfo = sys_linux()))?"show":"none"; 
  751.    break; 
  752.   case "freebsd": 
  753.    $sysreshow = (false !== ($sysinfo = sys_freebsd()))?"show":"none"; 
  754.    break; 
  755.   case "winnt": 
  756.    $sysreshow = (false !== ($sysinfo = sys_windows()))?"show":"none"; 
  757.    break; 
  758.   default: 
  759.    break; 
  760.  } 
  761.  
  762. /*------------------------------------------------------------------------------------------------------------- 
  763.     系统参数探测 linux 
  764. --------------------------------------------------------------------------------------------------------------*/ 
  765.     function sys_linux() 
  766.     { 
  767.         // cpu 
  768.         if (false === ($str = @file("/proc/cpuinfo"))) return false; 
  769.         $str = implode("", $str); 
  770.         @preg_match_all("/models+names{0,}:+s{0,}([ws)(.]+)[ ]+/", $str, $model); 
  771.         //@preg_match_all("/cpus+mhzs{0,}:+s{0,}([d.]+)[ ]+/", $str, $mhz); 
  772.         @preg_match_all("/caches+sizes{0,}:+s{0,}([d.]+s{0,}[a-z]+[ ]+)/", $str, $cache); 
  773.         if (false !== is_array($model[1])) 
  774.             { 
  775.             $res['cpu']['num'] = sizeof($model[1]); 
  776.             for($i = 0; $i < $res['cpu']['num']; $i++) 
  777.             { 
  778.                 $res['cpu']['detail'][] = "类型:".$model[1][$i]." 缓存:".$cache[1][$i]; 
  779.             } 
  780.             if (false !== is_array($res['cpu']['detail'])) $res['cpu']['detail'] = implode("<br />", $res['cpu']['detail']); 
  781.             } 
  782.           
  783.         // uptime 
  784.         if (false === ($str = @file("/proc/uptime"))) return false; 
  785.         $str = explode(" ", implode("", $str)); 
  786.         $str = trim($str[0]); 
  787.         $min = $str / 60; 
  788.         $hours = $min / 60; 
  789.         $days = floor($hours / 24); 
  790.         $hours = floor($hours - ($days * 24)); 
  791.         $min = floor($min - ($days * 60 * 24) - ($hours * 60)); 
  792.         if ($days != 0) {$res['uptime'] = $days."天";} 
  793.         if ($hours != 0) {$res['uptime'] .= $hours."小时";} 
  794.         $res['uptime'] .= $min."分钟"; 
  795.           
  796.         // memory 
  797.         if (false === ($str = @file("/proc/meminfo"))) return false; 
  798.         $str = implode("", $str); 
  799.         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); 
  800.           
  801.         $res['memtotal'] = round($buf[1][0]/1024, 2); 
  802.         $res['memfree'] = round($buf[2][0]/1024, 2); 
  803.         $res['memused'] = ($res['memtotal']-$res['memfree']); 
  804.         $res['mempercent'] = (floatval($res['memtotal'])!=0)?round($res['memused']/$res['memtotal']*100,2):0; 
  805.           
  806.         $res['swaptotal'] = round($buf[3][0]/1024, 2); 
  807.         $res['swapfree'] = round($buf[4][0]/1024, 2); 
  808.         $res['swapused'] = ($res['swaptotal']-$res['swapfree']); 
  809.         $res['swappercent'] = (floatval($res['swaptotal'])!=0)?round($res['swapused']/$res['swaptotal']*100,2):0; 
  810.           
  811.         // load avg 
  812.         if (false === ($str = @file("/proc/loadavg"))) return false; 
  813.         $str = explode(" ", implode("", $str)); 
  814.         $str = array_chunk($str, 3); 
  815.         $res['loadavg'] = implode(" ", $str[0]); 
  816.           
  817.         return $res; 
  818.     } 
  819. /*------------------------------------------------------------------------------------------------------------- 
  820.     系统参数探测 freebsd 
  821. --------------------------------------------------------------------------------------------------------------*/ 
  822.     function sys_freebsd() 
  823.     { 
  824.         //cpu 
  825.         if (false === ($res['cpu']['num'] = get_key("hw.ncpu"))) return false; 
  826.         $res['cpu']['detail'] = get_key("hw.model"); 
  827.           
  828.         //load avg 
  829.         if (false === ($res['loadavg'] = get_key("vm.loadavg"))) return false; 
  830.         $res['loadavg'] = str_replace("{", "", $res['loadavg']); 
  831.         $res['loadavg'] = str_replace("}", "", $res['loadavg']); 
  832.           
  833.         //uptime 
  834.         if (false === ($buf = get_key("kern.boottime"))) return false; 
  835.         $buf = explode(' ', $buf); 
  836.         $sys_ticks = time() - intval($buf[3]); 
  837.         $min = $sys_ticks / 60; 
  838.         $hours = $min / 60; 
  839.         $days = floor($hours / 24); 
  840.         $hours = floor($hours - ($days * 24)); 
  841.         $min = floor($min - ($days * 60 * 24) - ($hours * 60)); 
  842.         if ($days != 0) $res['uptime'] = $days."天"; 
  843.         if ($hours != 0) $res['uptime'] .= $hours."小时"; 
  844.         $res['uptime'] .= $min."分钟"; 
  845.           
  846.         //memory 
  847.         if (false === ($buf = get_key("hw.physmem"))) return false; 
  848.         $res['memtotal'] = round($buf/1024/1024, 2); 
  849.         $buf = explode(" ", do_command("vmstat", "")); 
  850.         $buf = explode(" ", trim($buf[2])); 
  851.           
  852.         $res['memfree'] = round($buf[5]/1024, 2); 
  853.         $res['memused'] = ($res['memtotal']-$res['memfree']); 
  854.         $res['mempercent'] = (floatval($res['memtotal'])!=0)?round($res['memused']/$res['memtotal']*100,2):0; 
  855.             
  856.         $buf = explode(" ", do_command("swapinfo", "-k")); 
  857.         $buf = $buf[1]; 
  858.         preg_match_all("/([0-9]+)s+([0-9]+)s+([0-9]+)/", $buf, $bufarr); 
  859.         $res['swaptotal'] = round($bufarr[1][0]/1024, 2); 
  860.         $res['swapused'] = round($bufarr[2][0]/1024, 2); 
  861.         $res['swapfree'] = round($bufarr[3][0]/1024, 2); 
  862.         $res['swappercent'] = (floatval($res['swaptotal'])!=0)?round($res['swapused']/$res['swaptotal']*100,2):0; 
  863.           
  864.         return $res; 
  865.     } 
  866.       
  867. /*------------------------------------------------------------------------------------------------------------- 
  868.     取得参数值 freebsd 
  869. --------------------------------------------------------------------------------------------------------------*/ 
  870. function get_key($keyname) 
  871.     { 
  872.         return do_command('sysctl', "-n $keyname"); 
  873.     } 
  874.       
  875. /*------------------------------------------------------------------------------------------------------------- 
  876.     确定执行文件位置 freebsd 
  877. --------------------------------------------------------------------------------------------------------------*/ 
  878.     function find_command($commandname) 
  879.     { 
  880.         $path = array('/bin', '/sbin', '/usr/bin', '/usr/sbin', '/usr/local/bin', '/usr/local/sbin'); 
  881.         foreach($path as $p) 
  882.         { 
  883.             if (@is_executable("$p/$commandname")) return "$p/$commandname"; 
  884.         } 
  885.         return false; 
  886.     } 
  887.       
  888. /*------------------------------------------------------------------------------------------------------------- 
  889.     执行系统命令 freebsd 
  890. --------------------------------------------------------------------------------------------------------------*/ 
  891.     function do_command($commandname, $args) 
  892.     { 
  893.         $buffer = ""; 
  894.         if (false === ($command = find_command($commandname))) return false; 
  895.         if ($fp = @popen("$command $args", 'r')) 
  896.             { 
  897.     while (!@feof($fp)) 
  898.     { 
  899.      $buffer .= @fgets($fp, 4096); 
  900.     } 
  901.     return trim($buffer); 
  902.    } 
  903.         return false; 
  904.     } 
  905. //开源代码phpfensi.com 
  906. /*------------------------------------------------------------------------------------------------------------- 
  907.     系统参数探测 windows 
  908. --------------------------------------------------------------------------------------------------------------*/ 
  909.     function sys_windows() 
  910.  { 
  911.  //$phpos=php_os; 
  912.  $sysinfo['uptime'] ="对不起windows系统不支持"; 
  913.   
  914.  } 
  915. ?>

Tags: php 针探 服务器详细信息

分享到: