├── Dockerfile ├── README.md ├── index.html └── tz.php /Dockerfile: -------------------------------------------------------------------------------- 1 | FROM php:5.6.30-apache 2 | COPY tz.php /var/www/html/ 3 | COPY index.html /var/www/html/ 4 | EXPOSE 80 5 | -------------------------------------------------------------------------------- /README.md: -------------------------------------------------------------------------------- 1 | # PHP 雅黑探针 2 | 3 | 探针来自 : http://www.yahei.net 4 | 5 | ## Docker启动 6 | ``` 7 | docker run -d --name tz -p 80:80 malaohu/php-yahei-tz 8 | ``` 9 | -------------------------------------------------------------------------------- /index.html: -------------------------------------------------------------------------------- 1 | PHP探针演示Docker - 来着如有乐享
2 | 点击查看探针地址
3 | -------------------------------------------------------------------------------- /tz.php: -------------------------------------------------------------------------------- 1 | =0; $l--) 58 | { 59 | $allsize1[$l]=floor($size/pow(1024,$l)); 60 | $allsize[$l]=$allsize1[$l]-$allsize1[$l+1]*1024; 61 | } 62 | 63 | $len=count($allsize); 64 | 65 | for($j = $len-1; $j >=0; $j--) 66 | { 67 | $fsize=$fsize.$allsize[$j].$danwei[$j]; 68 | } 69 | return $fsize; 70 | } 71 | 72 | function valid_email($str) 73 | { 74 | return ( ! preg_match("/^([a-z0-9\+_\-]+)(\.[a-z0-9\+_\-]+)*@([a-z0-9\-]+\.)+[a-z]{2,6}$/ix", $str)) ? FALSE : TRUE; 75 | } 76 | 77 | //检测PHP设置参数 78 | function show($varName) 79 | { 80 | switch($result = get_cfg_var($varName)) 81 | { 82 | case 0: 83 | return '×'; 84 | break; 85 | 86 | case 1: 87 | return ''; 88 | break; 89 | 90 | default: 91 | return $result; 92 | break; 93 | } 94 | } 95 | 96 | //保留服务器性能测试结果 97 | $valInt = isset($_POST['pInt']) ? $_POST['pInt'] : "未测试"; 98 | $valFloat = isset($_POST['pFloat']) ? $_POST['pFloat'] : "未测试"; 99 | $valIo = isset($_POST['pIo']) ? $_POST['pIo'] : "未测试"; 100 | 101 | if ($_GET['act'] == "phpinfo") 102 | { 103 | phpinfo(); 104 | exit(); 105 | } 106 | elseif($_POST['act'] == "整型测试") 107 | { 108 | $valInt = test_int(); 109 | } 110 | elseif($_POST['act'] == "浮点测试") 111 | { 112 | $valFloat = test_float(); 113 | } 114 | elseif($_POST['act'] == "IO测试") 115 | { 116 | $valIo = test_io(); 117 | } 118 | //网速测试-开始 119 | elseif($_POST['act']=="开始测试") 120 | { 121 | ?> 122 | 127 | "; 131 | } 132 | ?> 133 | 139 | "; 149 | Echo "这里显示系统所支持的所有函数,和自定义函数\n"; 150 | print_r($arr); 151 | echo ""; 152 | exit(); 153 | }elseif($_GET['act'] == "disable_functions") 154 | { 155 | $disFuns=get_cfg_var("disable_functions"); 156 | if(empty($disFuns)) 157 | { 158 | $arr = '×'; 159 | } 160 | else 161 | { 162 | $arr = $disFuns; 163 | } 164 | Function php() 165 | { 166 | } 167 | echo "
";
 168 | 	Echo "这里显示系统被禁用的函数\n";
 169 | 	print_r($arr);
 170 | 	echo "
"; 171 | exit(); 172 | } 173 | 174 | //MySQL检测 175 | if ($_POST['act'] == 'MySQL检测') 176 | { 177 | $host = isset($_POST['host']) ? trim($_POST['host']) : ''; 178 | $port = isset($_POST['port']) ? (int) $_POST['port'] : ''; 179 | $login = isset($_POST['login']) ? trim($_POST['login']) : ''; 180 | $password = isset($_POST['password']) ? trim($_POST['password']) : ''; 181 | $host = preg_match('~[^a-z0-9\-\.]+~i', $host) ? '' : $host; 182 | $port = intval($port) ? intval($port) : ''; 183 | $login = preg_match('~[^a-z0-9\_\-]+~i', $login) ? '' : htmlspecialchars($login); 184 | $password = is_string($password) ? htmlspecialchars($password) : ''; 185 | } 186 | elseif ($_POST['act'] == '函数检测') 187 | { 188 | $funRe = "函数".$_POST['funName']."支持状况检测结果:".isfun1($_POST['funName']); 189 | } 190 | elseif ($_POST['act'] == '邮件检测') 191 | { 192 | $mailRe = "邮件发送检测结果:发送"; 193 | if($_SERVER['SERVER_PORT']==80){$mailContent = "http://".$_SERVER['SERVER_NAME'].($_SERVER['PHP_SELF'] ? $_SERVER['PHP_SELF'] : $_SERVER['SCRIPT_NAME']);} 194 | else{$mailContent = "http://".$_SERVER['SERVER_NAME'].":".$_SERVER['SERVER_PORT'].($_SERVER['PHP_SELF'] ? $_SERVER['PHP_SELF'] : $_SERVER['SCRIPT_NAME']);} 195 | $mailRe .= (false !== @mail($_POST["mailAdd"], $mailContent, "This is a test mail!")) ? "完成":"失败"; 196 | } 197 | 198 | //网络速度测试 199 | if(isset($_POST['speed'])) 200 | { 201 | $speed=round(100/($_POST['speed']/1000),2); 202 | } 203 | elseif($_GET['speed']=="0") 204 | { 205 | $speed=6666.67; 206 | } 207 | elseif(isset($_GET['speed']) and $_GET['speed']>0) 208 | { 209 | $speed=round(100/($_GET['speed']/1000),2); //下载速度:$speed kb/s 210 | } 211 | else 212 | { 213 | $speed=" 未探测 "; 214 | } 215 | 216 | 217 | // 检测函数支持 218 | function isfun($funName = '') 219 | { 220 | if (!$funName || trim($funName) == '' || preg_match('~[^a-z0-9\_]+~i', $funName, $tmp)) return '错误'; 221 | return (false !== function_exists($funName)) ? '' : '×'; 222 | } 223 | function isfun1($funName = '') 224 | { 225 | if (!$funName || trim($funName) == '' || preg_match('~[^a-z0-9\_]+~i', $funName, $tmp)) return '错误'; 226 | return (false !== function_exists($funName)) ? '√' : '×'; 227 | } 228 | 229 | //整数运算能力测试 230 | function test_int() 231 | { 232 | $timeStart = gettimeofday(); 233 | for($i = 0; $i < 3000000; $i++) 234 | { 235 | $t = 1+1; 236 | } 237 | $timeEnd = gettimeofday(); 238 | $time = ($timeEnd["usec"]-$timeStart["usec"])/1000000+$timeEnd["sec"]-$timeStart["sec"]; 239 | $time = round($time, 3)."秒"; 240 | return $time; 241 | } 242 | 243 | //浮点运算能力测试 244 | function test_float() 245 | { 246 | //得到圆周率值 247 | $t = pi(); 248 | $timeStart = gettimeofday(); 249 | 250 | for($i = 0; $i < 3000000; $i++) 251 | { 252 | //开平方 253 | sqrt($t); 254 | } 255 | 256 | $timeEnd = gettimeofday(); 257 | $time = ($timeEnd["usec"]-$timeStart["usec"])/1000000+$timeEnd["sec"]-$timeStart["sec"]; 258 | $time = round($time, 3)."秒"; 259 | return $time; 260 | } 261 | 262 | //IO能力测试 263 | function test_io() 264 | { 265 | $fp = @fopen(PHPSELF, "r"); 266 | $timeStart = gettimeofday(); 267 | for($i = 0; $i < 10000; $i++) 268 | { 269 | @fread($fp, 10240); 270 | @rewind($fp); 271 | } 272 | $timeEnd = gettimeofday(); 273 | @fclose($fp); 274 | $time = ($timeEnd["usec"]-$timeStart["usec"])/1000000+$timeEnd["sec"]-$timeStart["sec"]; 275 | $time = round($time, 3)."秒"; 276 | return($time); 277 | } 278 | 279 | function GetCoreInformation() {$data = file('/proc/stat');$cores = array();foreach( $data as $line ) {if( preg_match('/^cpu[0-9]/', $line) ){$info = explode(' ', $line);$cores[]=array('user'=>$info[1],'nice'=>$info[2],'sys' => $info[3],'idle'=>$info[4],'iowait'=>$info[5],'irq' => $info[6],'softirq' => $info[7]);}}return $cores;} 280 | function GetCpuPercentages($stat1, $stat2) {if(count($stat1)!==count($stat2)){return;}$cpus=array();for( $i = 0, $l = count($stat1); $i < $l; $i++) { $dif = array(); $dif['user'] = $stat2[$i]['user'] - $stat1[$i]['user'];$dif['nice'] = $stat2[$i]['nice'] - $stat1[$i]['nice']; $dif['sys'] = $stat2[$i]['sys'] - $stat1[$i]['sys'];$dif['idle'] = $stat2[$i]['idle'] - $stat1[$i]['idle'];$dif['iowait'] = $stat2[$i]['iowait'] - $stat1[$i]['iowait'];$dif['irq'] = $stat2[$i]['irq'] - $stat1[$i]['irq'];$dif['softirq'] = $stat2[$i]['softirq'] - $stat1[$i]['softirq'];$total = array_sum($dif);$cpu = array();foreach($dif as $x=>$y) $cpu[$x] = round($y / $total * 100, 2);$cpus['cpu' . $i] = $cpu;}return $cpus;} 281 | $stat1 = GetCoreInformation();sleep(1);$stat2 = GetCoreInformation();$data = GetCpuPercentages($stat1, $stat2); 282 | $cpu_show = $data['cpu0']['user']."%us, ".$data['cpu0']['sys']."%sy, ".$data['cpu0']['nice']."%ni, ".$data['cpu0']['idle']."%id, ".$data['cpu0']['iowait']."%wa, ".$data['cpu0']['irq']."%irq, ".$data['cpu0']['softirq']."%softirq"; 283 | function makeImageUrl($title, $data) {$api='http://api.yahei.net/tz/cpu_show.php?id=';$url.=$data['user'].',';$url.=$data['nice'].',';$url.=$data['sys'].',';$url.=$data['idle'].',';$url.=$data['iowait'];$url.='&chdl=User|Nice|Sys|Idle|Iowait&chdlp=b&chl=';$url.=$data['user'].'%25|';$url.=$data['nice'].'%25|';$url.=$data['sys'].'%25|';$url.=$data['idle'].'%25|';$url.=$data['iowait'].'%25';$url.='&chtt=Core+'.$title;return $api.base64_encode($url);} 284 | if($_GET['act'] == "cpu_percentage"){echo "
图片加载慢,请耐心等待!

";foreach( $data as $k => $v ) {echo '';}echo "
";exit();} 285 | 286 | // 根据不同系统取得CPU相关信息 287 | switch(PHP_OS) 288 | { 289 | case "Linux": 290 | $sysReShow = (false !== ($sysInfo = sys_linux()))?"show":"none"; 291 | break; 292 | 293 | case "FreeBSD": 294 | $sysReShow = (false !== ($sysInfo = sys_freebsd()))?"show":"none"; 295 | break; 296 | /* 297 | case "WINNT": 298 | $sysReShow = (false !== ($sysInfo = sys_windows()))?"show":"none"; 299 | break; 300 | */ 301 | default: 302 | break; 303 | } 304 | 305 | //linux系统探测 306 | function sys_linux() 307 | { 308 | // CPU 309 | if (false === ($str = @file("/proc/cpuinfo"))) return false; 310 | $str = implode("", $str); 311 | @preg_match_all("/model\s+name\s{0,}\:+\s{0,}([\w\s\)\(\@.-]+)([\r\n]+)/s", $str, $model); 312 | @preg_match_all("/cpu\s+MHz\s{0,}\:+\s{0,}([\d\.]+)[\r\n]+/", $str, $mhz); 313 | @preg_match_all("/cache\s+size\s{0,}\:+\s{0,}([\d\.]+\s{0,}[A-Z]+[\r\n]+)/", $str, $cache); 314 | @preg_match_all("/bogomips\s{0,}\:+\s{0,}([\d\.]+)[\r\n]+/", $str, $bogomips); 315 | if (false !== is_array($model[1])) 316 | { 317 | $res['cpu']['num'] = sizeof($model[1]); 318 | /* 319 | for($i = 0; $i < $res['cpu']['num']; $i++) 320 | { 321 | $res['cpu']['model'][] = $model[1][$i].' ('.$mhz[1][$i].')'; 322 | $res['cpu']['mhz'][] = $mhz[1][$i]; 323 | $res['cpu']['cache'][] = $cache[1][$i]; 324 | $res['cpu']['bogomips'][] = $bogomips[1][$i]; 325 | }*/ 326 | if($res['cpu']['num']==1) 327 | $x1 = ''; 328 | else 329 | $x1 = ' ×'.$res['cpu']['num']; 330 | $mhz[1][0] = ' | 频率:'.$mhz[1][0]; 331 | $cache[1][0] = ' | 二级缓存:'.$cache[1][0]; 332 | $bogomips[1][0] = ' | Bogomips:'.$bogomips[1][0]; 333 | $res['cpu']['model'][] = $model[1][0].$mhz[1][0].$cache[1][0].$bogomips[1][0].$x1; 334 | if (false !== is_array($res['cpu']['model'])) $res['cpu']['model'] = implode("
", $res['cpu']['model']); 335 | if (false !== is_array($res['cpu']['mhz'])) $res['cpu']['mhz'] = implode("
", $res['cpu']['mhz']); 336 | if (false !== is_array($res['cpu']['cache'])) $res['cpu']['cache'] = implode("
", $res['cpu']['cache']); 337 | if (false !== is_array($res['cpu']['bogomips'])) $res['cpu']['bogomips'] = implode("
", $res['cpu']['bogomips']); 338 | } 339 | 340 | // NETWORK 341 | 342 | // UPTIME 343 | if (false === ($str = @file("/proc/uptime"))) return false; 344 | $str = explode(" ", implode("", $str)); 345 | $str = trim($str[0]); 346 | $min = $str / 60; 347 | $hours = $min / 60; 348 | $days = floor($hours / 24); 349 | $hours = floor($hours - ($days * 24)); 350 | $min = floor($min - ($days * 60 * 24) - ($hours * 60)); 351 | if ($days !== 0) $res['uptime'] = $days."天"; 352 | if ($hours !== 0) $res['uptime'] .= $hours."小时"; 353 | $res['uptime'] .= $min."分钟"; 354 | 355 | // MEMORY 356 | if (false === ($str = @file("/proc/meminfo"))) return false; 357 | $str = implode("", $str); 358 | preg_match_all("/MemTotal\s{0,}\:+\s{0,}([\d\.]+).+?MemFree\s{0,}\:+\s{0,}([\d\.]+).+?Cached\s{0,}\:+\s{0,}([\d\.]+).+?SwapTotal\s{0,}\:+\s{0,}([\d\.]+).+?SwapFree\s{0,}\:+\s{0,}([\d\.]+)/s", $str, $buf); 359 | preg_match_all("/Buffers\s{0,}\:+\s{0,}([\d\.]+)/s", $str, $buffers); 360 | 361 | $res['memTotal'] = round($buf[1][0]/1024, 2); 362 | $res['memFree'] = round($buf[2][0]/1024, 2); 363 | $res['memBuffers'] = round($buffers[1][0]/1024, 2); 364 | $res['memCached'] = round($buf[3][0]/1024, 2); 365 | $res['memUsed'] = $res['memTotal']-$res['memFree']; 366 | $res['memPercent'] = (floatval($res['memTotal'])!=0)?round($res['memUsed']/$res['memTotal']*100,2):0; 367 | 368 | $res['memRealUsed'] = $res['memTotal'] - $res['memFree'] - $res['memCached'] - $res['memBuffers']; //真实内存使用 369 | $res['memRealFree'] = $res['memTotal'] - $res['memRealUsed']; //真实空闲 370 | $res['memRealPercent'] = (floatval($res['memTotal'])!=0)?round($res['memRealUsed']/$res['memTotal']*100,2):0; //真实内存使用率 371 | 372 | $res['memCachedPercent'] = (floatval($res['memCached'])!=0)?round($res['memCached']/$res['memTotal']*100,2):0; //Cached内存使用率 373 | 374 | $res['swapTotal'] = round($buf[4][0]/1024, 2); 375 | $res['swapFree'] = round($buf[5][0]/1024, 2); 376 | $res['swapUsed'] = round($res['swapTotal']-$res['swapFree'], 2); 377 | $res['swapPercent'] = (floatval($res['swapTotal'])!=0)?round($res['swapUsed']/$res['swapTotal']*100,2):0; 378 | 379 | // LOAD AVG 380 | if (false === ($str = @file("/proc/loadavg"))) return false; 381 | $str = explode(" ", implode("", $str)); 382 | $str = array_chunk($str, 4); 383 | $res['loadAvg'] = implode(" ", $str[0]); 384 | 385 | return $res; 386 | } 387 | 388 | //FreeBSD系统探测 389 | function sys_freebsd() 390 | { 391 | //CPU 392 | if (false === ($res['cpu']['num'] = get_key("hw.ncpu"))) return false; 393 | $res['cpu']['model'] = get_key("hw.model"); 394 | //LOAD AVG 395 | if (false === ($res['loadAvg'] = get_key("vm.loadavg"))) return false; 396 | //UPTIME 397 | if (false === ($buf = get_key("kern.boottime"))) return false; 398 | $buf = explode(' ', $buf); 399 | $sys_ticks = time() - intval($buf[3]); 400 | $min = $sys_ticks / 60; 401 | $hours = $min / 60; 402 | $days = floor($hours / 24); 403 | $hours = floor($hours - ($days * 24)); 404 | $min = floor($min - ($days * 60 * 24) - ($hours * 60)); 405 | if ($days !== 0) $res['uptime'] = $days."天"; 406 | if ($hours !== 0) $res['uptime'] .= $hours."小时"; 407 | $res['uptime'] .= $min."分钟"; 408 | //MEMORY 409 | if (false === ($buf = get_key("hw.physmem"))) return false; 410 | $res['memTotal'] = round($buf/1024/1024, 2); 411 | 412 | $str = get_key("vm.vmtotal"); 413 | preg_match_all("/\nVirtual Memory[\:\s]*\(Total[\:\s]*([\d]+)K[\,\s]*Active[\:\s]*([\d]+)K\)\n/i", $str, $buff, PREG_SET_ORDER); 414 | preg_match_all("/\nReal Memory[\:\s]*\(Total[\:\s]*([\d]+)K[\,\s]*Active[\:\s]*([\d]+)K\)\n/i", $str, $buf, PREG_SET_ORDER); 415 | 416 | $res['memRealUsed'] = round($buf[0][2]/1024, 2); 417 | $res['memCached'] = round($buff[0][2]/1024, 2); 418 | $res['memUsed'] = round($buf[0][1]/1024, 2) + $res['memCached']; 419 | $res['memFree'] = $res['memTotal'] - $res['memUsed']; 420 | $res['memPercent'] = (floatval($res['memTotal'])!=0)?round($res['memUsed']/$res['memTotal']*100,2):0; 421 | 422 | $res['memRealPercent'] = (floatval($res['memTotal'])!=0)?round($res['memRealUsed']/$res['memTotal']*100,2):0; 423 | 424 | return $res; 425 | } 426 | 427 | //取得参数值 FreeBSD 428 | function get_key($keyName) 429 | { 430 | return do_command('sysctl', "-n $keyName"); 431 | } 432 | 433 | //确定执行文件位置 FreeBSD 434 | function find_command($commandName) 435 | { 436 | $path = array('/bin', '/sbin', '/usr/bin', '/usr/sbin', '/usr/local/bin', '/usr/local/sbin'); 437 | foreach($path as $p) 438 | { 439 | if (@is_executable("$p/$commandName")) return "$p/$commandName"; 440 | } 441 | return false; 442 | } 443 | 444 | //执行系统命令 FreeBSD 445 | function do_command($commandName, $args) 446 | { 447 | $buffer = ""; 448 | if (false === ($command = find_command($commandName))) return false; 449 | if ($fp = @popen("$command $args", 'r')) 450 | { 451 | while (!@feof($fp)) 452 | { 453 | $buffer .= @fgets($fp, 4096); 454 | } 455 | return trim($buffer); 456 | } 457 | return false; 458 | } 459 | 460 | //windows系统探测 461 | function sys_windows() 462 | { 463 | if (PHP_VERSION >= 5) 464 | { 465 | $objLocator = new COM("WbemScripting.SWbemLocator"); 466 | $wmi = $objLocator->ConnectServer(); 467 | $prop = $wmi->get("Win32_PnPEntity"); 468 | } 469 | else 470 | { 471 | return false; 472 | } 473 | 474 | //CPU 475 | $cpuinfo = GetWMI($wmi,"Win32_Processor", array("Name","L2CacheSize","NumberOfCores")); 476 | $res['cpu']['num'] = $cpuinfo[0]['NumberOfCores']; 477 | if (null == $res['cpu']['num']) 478 | { 479 | $res['cpu']['num'] = 1; 480 | }/* 481 | for ($i=0;$i<$res['cpu']['num'];$i++) 482 | { 483 | $res['cpu']['model'] .= $cpuinfo[0]['Name']."
"; 484 | $res['cpu']['cache'] .= $cpuinfo[0]['L2CacheSize']."
"; 485 | }*/ 486 | $cpuinfo[0]['L2CacheSize'] = ' ('.$cpuinfo[0]['L2CacheSize'].')'; 487 | if($res['cpu']['num']==1) 488 | $x1 = ''; 489 | else 490 | $x1 = ' ×'.$res['cpu']['num']; 491 | $res['cpu']['model'] = $cpuinfo[0]['Name'].$cpuinfo[0]['L2CacheSize'].$x1; 492 | // SYSINFO 493 | $sysinfo = GetWMI($wmi,"Win32_OperatingSystem", array('LastBootUpTime','TotalVisibleMemorySize','FreePhysicalMemory','Caption','CSDVersion','SerialNumber','InstallDate')); 494 | $sysinfo[0]['Caption']=iconv('GBK', 'UTF-8',$sysinfo[0]['Caption']); 495 | $sysinfo[0]['CSDVersion']=iconv('GBK', 'UTF-8',$sysinfo[0]['CSDVersion']); 496 | $res['win_n'] = $sysinfo[0]['Caption']." ".$sysinfo[0]['CSDVersion']." 序列号:{$sysinfo[0]['SerialNumber']} 于".date('Y年m月d日H:i:s',strtotime(substr($sysinfo[0]['InstallDate'],0,14)))."安装"; 497 | //UPTIME 498 | $res['uptime'] = $sysinfo[0]['LastBootUpTime']; 499 | 500 | $sys_ticks = 3600*8 + time() - strtotime(substr($res['uptime'],0,14)); 501 | $min = $sys_ticks / 60; 502 | $hours = $min / 60; 503 | $days = floor($hours / 24); 504 | $hours = floor($hours - ($days * 24)); 505 | $min = floor($min - ($days * 60 * 24) - ($hours * 60)); 506 | if ($days !== 0) $res['uptime'] = $days."天"; 507 | if ($hours !== 0) $res['uptime'] .= $hours."小时"; 508 | $res['uptime'] .= $min."分钟"; 509 | 510 | //MEMORY 511 | $res['memTotal'] = round($sysinfo[0]['TotalVisibleMemorySize']/1024,2); 512 | $res['memFree'] = round($sysinfo[0]['FreePhysicalMemory']/1024,2); 513 | $res['memUsed'] = $res['memTotal']-$res['memFree']; //上面两行已经除以1024,这行不用再除了 514 | $res['memPercent'] = round($res['memUsed'] / $res['memTotal']*100,2); 515 | 516 | $swapinfo = GetWMI($wmi,"Win32_PageFileUsage", array('AllocatedBaseSize','CurrentUsage')); 517 | 518 | // LoadPercentage 519 | $loadinfo = GetWMI($wmi,"Win32_Processor", array("LoadPercentage")); 520 | $res['loadAvg'] = $loadinfo[0]['LoadPercentage']; 521 | 522 | return $res; 523 | } 524 | 525 | function GetWMI($wmi,$strClass, $strValue = array()) 526 | { 527 | $arrData = array(); 528 | 529 | $objWEBM = $wmi->Get($strClass); 530 | $arrProp = $objWEBM->Properties_; 531 | $arrWEBMCol = $objWEBM->Instances_(); 532 | foreach($arrWEBMCol as $objItem) 533 | { 534 | @reset($arrProp); 535 | $arrInstance = array(); 536 | foreach($arrProp as $propItem) 537 | { 538 | eval("\$value = \$objItem->" . $propItem->Name . ";"); 539 | if (empty($strValue)) 540 | { 541 | $arrInstance[$propItem->Name] = trim($value); 542 | } 543 | else 544 | { 545 | if (in_array($propItem->Name, $strValue)) 546 | { 547 | $arrInstance[$propItem->Name] = trim($value); 548 | } 549 | } 550 | } 551 | $arrData[] = $arrInstance; 552 | } 553 | return $arrData; 554 | } 555 | 556 | //比例条 557 | function bar($percent) 558 | { 559 | ?> 560 |
 
561 | "$du",'freeSpace'=>"$df",'hdPercent'=>"$hdPercent",'barhdPercent'=>"$hdPercent%",'TotalMemory'=>"$mt",'UsedMemory'=>"$mu",'FreeMemory'=>"$mf",'CachedMemory'=>"$mc",'Buffers'=>"$mb",'TotalSwap'=>"$st",'swapUsed'=>"$su",'swapFree'=>"$sf",'loadAvg'=>"$load",'uptime'=>"$uptime",'freetime'=>"$freetime",'bjtime'=>"$bjtime",'stime'=>"$stime",'memRealPercent'=>"$memRealPercent",'memRealUsed'=>"$memRealUsed",'memRealFree'=>"$memRealFree",'memPercent'=>"$memPercent%",'memCachedPercent'=>"$memCachedPercent",'barmemCachedPercent'=>"$memCachedPercent%",'swapPercent'=>"$swapPercent",'barmemRealPercent'=>"$memRealPercent%",'barswapPercent'=>"$swapPercent%",'NetOut2'=>"$NetOut[2]",'NetOut3'=>"$NetOut[3]",'NetOut4'=>"$NetOut[4]",'NetOut5'=>"$NetOut[5]",'NetOut6'=>"$NetOut[6]",'NetOut7'=>"$NetOut[7]",'NetOut8'=>"$NetOut[8]",'NetOut9'=>"$NetOut[9]",'NetOut10'=>"$NetOut[10]",'NetInput2'=>"$NetInput[2]",'NetInput3'=>"$NetInput[3]",'NetInput4'=>"$NetInput[4]",'NetInput5'=>"$NetInput[5]",'NetInput6'=>"$NetInput[6]",'NetInput7'=>"$NetInput[7]",'NetInput8'=>"$NetInput[8]",'NetInput9'=>"$NetInput[9]",'NetInput10'=>"$NetInput[10]",'NetOutSpeed2'=>"$NetOutSpeed[2]",'NetOutSpeed3'=>"$NetOutSpeed[3]",'NetOutSpeed4'=>"$NetOutSpeed[4]",'NetOutSpeed5'=>"$NetOutSpeed[5]",'NetInputSpeed2'=>"$NetInputSpeed[2]",'NetInputSpeed3'=>"$NetInputSpeed[3]",'NetInputSpeed4'=>"$NetInputSpeed[4]",'NetInputSpeed5'=>"$NetInputSpeed[5]"); 630 | $jarr=json_encode($arr); 631 | $_GET['callback'] = htmlspecialchars($_GET['callback']); 632 | echo $_GET['callback'],'(',$jarr,')'; 633 | exit; 634 | } 635 | ?> 636 | 637 | 638 | 639 | <?php echo $title.$version; ?> 640 | 641 | 642 | 643 | 684 | 685 | 774 | 775 | 776 | 777 |
778 | 779 | 780 | 781 | 782 | 783 | 784 | 785 | 786 | 787 | 788 | 789 | 790 | 791 | 792 | 793 |
PHP参数组件支持第三方组件数据库支持性能检测网速检测MySQL检测函数检测邮件检测探针下载
794 | 795 | 796 | 797 | 798 | 799 | 800 | 801 | 802 | 803 | 804 | 805 | 806 | 807 | 808 | 809 | 810 | 811 | 812 | 813 | 814 | 815 | 816 | 817 | 818 | 819 | 820 | 821 | 822 | 823 | 824 | 825 | 826 | 827 | 828 | 829 | 830 |
服务器参数
服务器域名/IP地址 - ()  你的IP地址是:
服务器标识
服务器操作系统  内核版本:服务器解译引擎
服务器语言服务器端口
服务器主机名绝对路径
管理员邮箱探针路径
831 | 832 | 833 | 834 | 835 | 836 | 837 | 838 | 839 | 840 | 841 | 842 | 843 | 844 | 845 | 846 | 847 | 849 | 850 | 851 | 852 | 859 | 860 | 861 | 862 | 922 | 923 | 924 | 925 | 926 | 927 |
服务器实时数据
服务器当前时间服务器已运行时间
CPU型号 [核]
CPU使用状况查看图表";}else{echo "暂时只支持Linux系统";}?> 848 |
硬盘使用状况 853 | 总空间  G, 854 | 已用  G, 855 | 空闲  G, 856 | 使用率 % 857 |
 
858 |
内存使用状况 863 | 873 | 物理内存:共 874 | 875 | , 已用 876 | 877 | , 空闲 878 | 879 | , 使用率 880 | 881 |
 
882 | 0) 885 | { 886 | ?> 887 | Cache化内存为 888 | , 使用率 889 | 890 | % | Buffers缓冲为 891 |
 
892 | 893 | 真实内存使用 894 | 895 | , 真实内存空闲 896 | 897 | , 使用率 898 | 899 | % 900 |
 
901 | 0) 905 | { 906 | ?> 907 | SWAP区:共 908 | 909 | , 已使用 910 | 911 | , 空闲 912 | 913 | , 使用率 914 | 915 | % 916 |
 
917 | 918 | 921 |
系统平均负载
928 | 929 | 930 | 931 | 932 | 933 | 934 | 935 | 936 | 937 | 938 | 939 | 940 | 941 | 942 | 943 |
网络使用状况
: 入网: 实时: 0B/s出网: 实时: 0B/s
944 | 945 | 946 | 947 | 948 | 949 | 950 | 951 | 962 | 963 |
PHP已编译模块检测
952 | $value) { 955 | if ($key!=0 && $key%13==0) { 956 | echo '
'; 957 | } 958 | echo "$value  "; 959 | } 960 | ?>
961 |
964 | 965 | 966 | 967 | 968 | 969 | 970 | 977 | 978 | 979 | 980 | 981 | 982 | 983 | 984 | 985 | 986 | 987 | 988 | 989 | 990 | 991 | 992 | 993 | 994 | 995 | 996 | 997 | 998 | 999 | 1000 | 1001 | 1002 | 1003 | 1004 | 1005 | 1006 | 1007 | 1008 | 1009 | 1010 | 1011 | 1012 | 1013 | 1014 | 1015 | 1016 | 1017 | 1018 | 1019 | 1020 | 1021 | 1022 | 1023 | 1024 | 1025 | 1026 | 1027 | 1028 | 1029 | 1030 | 1031 | 1032 | 1033 | 1034 | 1035 | 1036 | 1037 | 1038 | 1039 | 1040 | 1041 | 1042 | 1043 | 1044 | 1045 | 1046 | 1047 | 1048 | 1049 | 1050 | 1051 | 1052 | 1053 | 1054 | 1055 | 1056 | 1057 | 1058 | 1059 | 1060 | 1061 | 1062 | 1063 | 1064 | 1065 | 1066 | 1067 | 1068 | 1069 | 1070 | 1071 | 1072 | 1073 | 1074 | 1075 | 1076 | 1077 | 1078 | 1079 | 1080 | 1081 | 1082 | 1083 | 1084 | 1085 | 1086 | 1087 | 1109 | 1110 |
PHP相关参数
PHP信息(phpinfo): 971 | 975 | ×' :"PHPINFO";?> 976 | PHP版本(php_version):
PHP运行方式:脚本占用最大内存(memory_limit):
PHP安全模式(safe_mode):POST方法提交最大限制(post_max_size):
上传文件最大限制(upload_max_filesize):浮点型数据显示的有效位数(precision):
脚本超时时间(max_execution_time):socket超时时间(default_socket_timeout):
PHP页面根目录(doc_root):用户根目录(user_dir):
dl()函数(enable_dl):指定包含文件目录(include_path):
显示错误信息(display_errors):自定义全局变量(register_globals):
数据反斜杠转义(magic_quotes_gpc):"<?...?>"短标签(short_open_tag):
"<% %>"ASP风格标记(asp_tags):忽略重复错误信息(ignore_repeated_errors):
忽略重复的错误源(ignore_repeated_source):报告内存泄漏(report_memleaks):
自动字符串转义(magic_quotes_gpc):外部字符串自动转义(magic_quotes_runtime):
打开远程文件(allow_url_fopen):声明argv和argc变量(register_argc_argv):
Cookie 支持:√' : '×';?>拼写检查(ASpell Library):
高精度数学运算(BCMath):PREL相容语法(PCRE):
PDF文档支持:SNMP网络管理协议:
VMailMgr邮件处理:Curl支持:
SMTP支持:√' : '×';?>SMTP地址:×';?>
默认支持函数(enable_functions):请点这里查看详细!
被禁用的函数(disable_functions): 1088 | ×'; 1093 | } 1094 | else 1095 | { 1096 | //echo $disFuns; 1097 | $disFuns_array = explode(',',$disFuns); 1098 | foreach ($disFuns_array as $key=>$value) 1099 | { 1100 | if ($key!=0 && $key%5==0) { 1101 | echo '
'; 1102 | } 1103 | echo "$value  "; 1104 | } 1105 | } 1106 | 1107 | ?> 1108 |
1111 | 1112 | 1113 | 1114 | 1115 | 1116 | 1117 | 1118 | 1119 | 1120 | 1121 | 1122 | 1123 | 1124 | 1125 | 1126 | 1127 | 1128 | 1129 | 1130 | 1132 | 1133 | 1134 | 1135 | 1136 | 1137 | 1144 | 1145 | 1146 | 1147 | 1148 | 1149 | 1150 | 1151 | 1152 | 1153 | 1154 | 1155 | 1156 | 1157 | 1158 | 1159 | 1160 | 1161 | 1162 | 1163 | 1164 | 1165 | 1166 | 1167 | 1168 | 1169 | 1170 | 1171 | 1172 | 1173 | 1174 | 1175 | 1176 | 1177 |
组件支持
FTP支持:XML解析支持:
Session支持:Socket支持:
Calendar支持 1131 | 允许URL打开文件:
GD库支持: 1138 | ×';} 1143 | ?>压缩文件支持(Zlib):
IMAP电子邮件系统函数库:历法运算函数库:
正则表达式函数库:WDDX支持:
Iconv编码转换:mbstring:
高精度数学运算:LDAP目录协议:
MCrypt加密处理:哈稀计算:
1178 | 1179 | 1180 | 1181 | 1182 | 1183 | 1184 | 1185 | 1186 | 1200 | 1201 | 1202 | 1203 | 1204 | 1205 | 1206 | 1207 | 1208 | 1209 | 1210 | 1211 | 1212 | 1213 | 1214 |
第三方组件
Zend版本×';}else{echo $zend_version;}?> 1187 | 2) 1191 | { 1192 | echo "ZendGuardLoader[启用]"; 1193 | } 1194 | else 1195 | { 1196 | echo "Zend Optimizer"; 1197 | } 1198 | ?> 1199 | 2){echo (get_cfg_var("zend_loader.enable"))?'':'×';} else{if(function_exists('zend_optimizer_version')){ echo zend_optimizer_version();}else{ echo (get_cfg_var("zend_optimizer.optimization_level")||get_cfg_var("zend_extension_manager.optimizer_ts")||get_cfg_var("zend.ze1_compatibility_mode")||get_cfg_var("zend_extension_ts"))?'':'×';}}?>
eAccelerator×";} ?>ioncube×";}?>
XCache×";} ?>APC×";} ?>
1215 | 1216 | 1217 | 1218 | 1219 | 1220 | 1221 | 1222 | 1232 | 1233 | 1234 | 1235 | 1236 | 1237 | 1238 | 1239 | 1240 | 1241 | 1242 | 1243 | 1244 | 1245 | 1246 | 1247 | 1248 | 1249 | 1250 | 1251 | 1252 | 1253 | 1254 | 1255 | 1256 | 1257 | 1258 | 1259 | 1260 | 1261 | 1262 | 1263 | 1264 | 1265 | 1266 | 1267 | 1268 | 1269 | 1270 | 1271 |
数据库支持
MySQL 数据库: 1223 | 1231 | ODBC 数据库:
Oracle 数据库:SQL Server 数据库:
dBASE 数据库:mSQL 数据库:
SQLite 数据库:√ ';echo "SQLite3 Ver ";echo $sqliteVer[versionString];}else {echo isfun("sqlite_close");if(isfun("sqlite_close") == '') {echo "  版本: ".@sqlite_libversion();}}?>Hyperwave 数据库:
Postgre SQL 数据库:Informix 数据库:
DBA 数据库:DBM 数据库:
FilePro 数据库:SyBase 数据库:
1272 | 1273 | 1274 |
" method="post"> 1275 | 1276 | 1277 | 1278 | 1279 | 1280 | 1281 | 1282 | 1283 | 1284 | 1285 | 1286 | 1287 | 1288 | 1289 | 1290 | 1291 | 1292 | 1293 | 1294 | 1295 | 1296 | 1297 | 1298 | 1299 | 1300 | 1301 | 1302 | 1303 | 1304 | 1305 | 1306 | 1307 | 1308 | 1309 | 1310 | 1311 | 1312 | 1313 | 1314 | 1315 | 1316 | 1317 | 1318 | 1319 | 1320 | 1321 | 1322 | 1323 | 1324 | 1325 | 1326 | 1327 | 1328 | 1329 | 1330 | 1331 | 1332 | 1333 | 1334 |
服务器性能检测
参照对象整数运算能力检测
(1+1运算300万次)
浮点运算能力检测
(圆周率开平方300万次)
数据I/O能力检测
(读取10K文件1万次)
CPU信息
美国 LinodeVPS0.357秒0.802秒0.023秒4 x Xeon L5520 @ 2.27GHz
美国 PhotonVPS.com0.431秒1.024秒0.034秒8 x Xeon E5520 @ 2.27GHz
德国 SpaceRich.com0.421秒1.003秒0.038秒4 x Core i7 920 @ 2.67GHz
美国 RiZie.com0.521秒1.559秒0.054秒2 x Pentium4 3.00GHz
埃及 CitynetHost.com0.343秒0.761秒0.023秒2 x Core2Duo E4600 @ 2.40GHz
美国 IXwebhosting.com0.535秒1.607秒0.058秒4 x Xeon E5530 @ 2.40GHz
本台服务器


1335 | 1336 | 1337 | 1338 | 1339 | 1340 | 1341 | 1342 | 1343 | 1344 | 1349 | 1394 | 1395 |
网络速度测试
1345 |
1346 | 向客户端传送1000k字节数据
1347 | 带宽比例按理想值计算 1348 |
1350 | 1351 | 1352 | 1353 | 1354 | 1355 | 1356 | 1357 | 1358 | 1359 | 1360 | 1361 | 1362 | 1363 | 1364 | 1365 | 1366 | 1389 | 1390 |
带宽1M2M3M4M5M6M7M8M9M10M
1367 | 1368 | 1377 | 1386 | 1387 |
">">
1388 |
1391 | ".$_GET['speed']." 毫秒,下载速度:"."".$speed.""." kb/s,需测试多次取平均值,超过10M直接看下载速度":" 未探测 " ?> 1392 | 1393 |
1396 | 1397 | 1398 | 1399 | 1400 | 1401 | 1402 | 1403 | 1409 | 1412 | 1413 |
MySQL数据库连接检测
1404 | 地址: 1405 | 端口: 1406 | 用户名: 1407 | 密码: 1408 | 1410 | 1411 |
1414 | alert('连接到MySql数据库正常')"; 1420 | } else { 1421 | echo ""; 1422 | } 1423 | } else { 1424 | echo ""; 1425 | } 1426 | } 1427 | ?> 1428 | 1429 | 1430 | 1431 | 1432 | 1433 | 1434 | 1435 | 1439 | 1442 | 1443 | alert('$funRe')"; 1446 | } 1447 | ?> 1448 |
函数检测
1436 | 请输入您要检测的函数: 1437 | 1438 | 1440 | 1441 |
1449 | 1450 | 1451 | 1452 | 1453 | 1454 | 1455 | 1456 | 1460 | 1463 | 1464 | alert('$mailRe')"; 1467 | } 1468 | ?> 1469 |
邮件发送检测
1457 | 请输入您要检测的邮件地址: 1458 | 1459 | 1461 | 1462 |
1470 |
1471 | 1472 | 1473 | 1474 | 1475 | 1476 | 1477 | 1478 |
Processed in seconds. memory usage.返回顶部
1479 | 1480 |
1481 | 1482 | --------------------------------------------------------------------------------