php 探針

WBOY
WBOY原創
2016-07-25 09:10:552403瀏覽

php 探針

  1. /*
  2. +-------------------------- ------------------------------------------------
  3. | B-Check v0.05.4
  4. | ======================================== ==
  5. | 南部第三製作
  6. | http://www.rubyfans.com
  7. | ========================= =================
  8. | 探針官方: 無
  9. | 最後更新: 2010.9.6 11:30
  10. | QQ:307292967
  11. + -------------------------------------------------- -------------------------
  12. |
  13. | 在編寫過程中,學習借鑒了很多其他優秀的探針
  14. | 並根據自身的理解做了很多修改和優化,就目前而言,這是探測資訊最全面的PHP探針了!
  15. | 整個執行框架,我是想到哪就寫到哪,並沒有進行合理的規劃,我想,在以後我有時間的時候會近一步更新
  16. |
  17. +---- -------------------------------------------------- --------------------
  18. */
  19. //抑制所有的錯誤訊息
  20. ini_set('display_errors', 'off');
  21. //計算頁面運行時間函數
  22. function getmicrotime(){
  23. list($usec, $sec) = explode(" ",microtime());
  24. return ((float)$usec + (float)$sec);
  25. }
  26. $pagestartime=getmicrotime();
  27. //顯示常數
  28. define("on", " Yes");
  29. define("off", "No");
  30. define("version", "v0.05.4");//版本號碼
  31. define("overtime","2010.9.6  11:30");//完成時間
  32. //顯示開關
  33. $mysqlReShow = "none";
  34. //使用通知,針對前幾個版本中,使用通知處理不合理,導致通知郵件源源不斷塞進我的郵箱。
  35. if($_COOKIE["had_send"] != "yes") {
  36. $messagex="來自:http://".$_SERVER['SERVER_NAME'].$_SERVER['PHP_SELF']. "nn版本:".version;
  37. $tox="307292967@qq.com";
  38. $subjectx="B-check User - ".version;
  39. mail($tox, $subjectx, $ messagex);
  40. setcookie("had_send", "yes");
  41. }
  42. //效能資訊結果刷新
  43. $ts_int = (false == empty($_POST['tsint ']))?$_POST['tsint']:test_int();
  44. $ts_float = (false == empty($_POST['tsfloat']))?$_POST['tsfloat']:test_float() ;
  45. $ts_io = (false == empty($_POST['tsio']))?$_POST['tsio']:test_io();
  46. if(isset($_POST['speed']) )
  47. {
  48. $speed=round(100/($_POST['speed']/1000),2);
  49. }
  50. elseif($_GET['speed']=="0 ")
  51. {
  52. $speed=6666.67;
  53. }
  54. elseif(isset($_GET['speed']) and $_GET['speed']>0)
  55. {
  56. $speed=round(100/($_GET['speed']/1000),2);
  57. }
  58. else
  59. {
  60. $speed=" 未探測";
  61. }
  62. //phpinfo()訊息列舉
  63. switch ($_GET['action']){
  64. case "phpinfo_GENERAL":
  65. phpinfo(INFO_GENERAL+INFO_ENVIMENTINFO_ENVIMENT +INFO_VARIABLES);
  66. exit;
  67. case "phpinfo_CONFIGURATION":
  68. phpinfo(INFO_CONFIGURATION);
  69. exit;
  70. cphpase"php_MODULES);
  71. exit;
  72. cphpase):_電話DULES"=o_UmDULES; ;
  73. case "phpinfo":
  74. phpinfo();
  75. exit;
  76. default:
  77. break;
  78. }
  79. //表單處理
  80. if(isset($ _POST['Buginfo']) and $_POST['act']=="提交"){//Bug提交!
  81. $message=$message."nn 來自:".$_SERVER['SERVER_NAME']. $_SERVER['PHP_SELF'];
  82. $to="307292967@qq.com";
  83. $subject="浩哥你多大了? ";
  84. $jg=@mail($to, $subject, $message);
  85. $jgprint= (true==$jg)?"回報成功!謝謝你! ":"回報失敗!寫信給我:307292967@qq.com";
  86. }
  87. elseif($_POST['action']=="整數運算")
  88. {
  89. $ts_int= test_int();
  90. }
  91. elseif($_POST['action']=="浮點運算")
  92. {
  93. $ts_float=test_float();
  94. }
  95. elseif ($_POST['action']=="IO測試")
  96. {
  97. $ts_io=test_io();
  98. }
  99. elseif($_POST['action']=="開始測試")//網速測試,等你來完善。
  100. {
  101. ?>
  102. for($i=1;$iecho "";
  103. }
  104. ?>
  105. }
  106. elseif($_POST['action'] == "連接Mysql")
  107. {
  108. $mysqlReShow = "show";
  109. $mysqlRe = "MYSQL連線測試結果:";
  110. $mysqlRe .= (false !==mysql_connect($_POST['mysqlhost'], $_POST[' mysqluser'], $_POST['mysqlpsd']))?"MYSQL伺服器連線正常,":"MYSQL伺服器連線失敗!, ";
  111. $mysqlRe .= "資料庫".$_POST['mysqldb']."  ";
  112. $mysqlRe .= (false != @mysql_select_db($ _POST['mysqldb']))?"連線正常":"連線失敗!";
  113. if( false !==mysql_connect($_POST['mysqlhost'], $_POST['mysqluser'], $_POST['mysqlpsd']))
  114. {
  115. $mysql_version=mysql_get_server_info();
  116. }
  117. }
  118. else
  119. {
  120. $mysql_version="取得失敗! ";
  121. }
  122. $mysqlRe .= ",Mysql伺服器版本:";
  123. $mysqlRe .= $mysql_version;
  124. }
  125. elseif($_POST['action' ] == "發送")
  126. {
  127. $mailRe = (false !== @mail($_POST["mailReceiver"], "探針郵件測試", "成功發送!"))?"傳送完成
  128. ":"傳送失敗!";
  129. }
  130. elseif($_POST['action']== "偵測")
  131. {
  132. $funre=$_POST['funame']." 的支援情況:".getfunexists($_POST['funame']);
  133. }
  134. elseif($ _POST['action']=="檢測1")
  135. {
  136. $pmre=$_POST['pm']." 的支援情況:".getvar($_POST['pm']);
  137. }
  138. //取得Zend Optimizer版本,方法參考了廢墟のPHP探針
  139. function checkoptimizer()
  140. {
  141. $url= "http://".$_SERVER['SERVER_NAME '].$_SERVER['PHP_SELF']."?action=phpinfo";
  142. $htmlct=file_get_contents($url);
  143. eregi("Optimizer v(.*), Copyright", $htmlct, $ regs);
  144. $optimizerversion=$regs[1]; $optimizerversion=(''!=$optimizerversion)?$optimizerversion:"取得失敗!";
  145. return $optimizerversion;
  146. }
  147. //取得php.ini設定參數,參考iProber
  148. function getvar($varname)
  149. {
  150. switch($ var=get_cfg_var($varname)?get_cfg_var($varname):ini_get($varname))
  151. {
  152. case 0:
  153. return off;
  154. break;
  155. case 1:
  156. return on;
  157. break;
  158. default:
  159. return $var;
  160. break;
  161. }
  162. }
  163. //判斷函數定義狀況
  164. function getfunexists($anamex )
  165. {
  166. return (false !== function_exists($funame))?on:off;
  167. }
  168. //整數運算測試
  169. function test_int()
  170. {
  171. {
  172. {
  173. {
  174. {
  175. {
  176. {
  177. {
  178. {
  179. {
  180. {
  181. {
  182. {
  183. {
  184. {
  185. {
  186. {
  187. {
  188. {
  189. {
  190. {
  191. {
  192. {
  193. {
  194. {
  195. {
  196. {
  197. {
  198. {
  199. {
  200. {
  201. { > $startime=getmicrotime();
  202. for($i = 0; $i {
  203. $t = 1+1;
  204. }
  205. $endtime =getmicrotime();
  206. $time=round($endtime-$startime,4);
  207. return $time;
  208. }
  209. //浮點數運算測試
  210. function test_float()
  211. {
  212. $startime=getmicrotime();
  213. for($i = 0; $i {
  214. sqrt($t);
  215. }
  216. $endtime=getmicrotime();
  217. $time=round($endtime-$startime,4);
  218. return $time;
  219. }
  220. //IO能力測試
  221. function test_io ()
  222. {
  223. $fp = fopen($_SERVER['PHP_SELF'], "r");
  224. $startime=getmicrotime();
  225. for($i = 0; $i {
  226. fread($fp, 10240);
  227. rewind($fp);
  228. }
  229. $endtime=getmicrotime();
  230. $time= round($endtime-$startime,4);
  231. return $time;
  232. }
  233. //取得磁碟資訊、disk_x_space("y")的參數不能用變數,@在這裡不起作用
  234. $diskct=0;
  235. $disk=array();
  236. /*if(@disk_total_space("A:")!=NULL) *為防止影響伺服器,不檢查軟驅- 阿江說的
  237. {
  238. $diskct=1;
  239. $disk["A"]=round((@diskct=1;
  240. $disk["A"]=round((@disk_free_space("A:")/(1024*1024*1024)),2)."G / ".round((@disk_total_space("A:")/(1024*1024*1024)),2).'G';
  241. }*/
  242. $diskz=0; //磁碟總容量
  243. $diskk=0; //磁碟剩餘容量
  244. if(@disk_total_space("B:")!=NULL)
  245. {
  246. $diskct++;
  247. $disk["B"][ 0]=round(@disk_free_space("B:")/(1024*1024*1024),2).'G';
  248. $disk["B"][1]=round(@disk_total_space("B :")/(1024*1024*1024),2).'G';
  249. $disk["B"][2]=round(((@disk_free_space("B:")/(1024*1024 *1024))/(@disk_total_space("B:")/(1024*1024*1024)))*100,2).'%';
  250. $diskk+=round((@disk_free_space("B:" )/(1024*1024*1024)),2);
  251. $diskz+=round((@disk_total_space("B:")/(1024*1024*1024)),2);
  252. }
  253. }
  254. if(@disk_total_space("C:")!=NULL)
  255. {
  256. $diskct++;
  257. $disk["C"][0]=round((@disk_free_space("C:") /(1024*1024*1024)),2).'G'; $disk["C"][1]=round((@disk_total_space("C:")/(1024*1024*1024) ),2).'G'; $disk["C"][2]=round(((@disk_free_space("C:")/(1024*1024*1024))/(@disk_total_space(" C:")/(1024*1024*1024)))*100,2).'%'; $diskk+=round((@disk_free_space("C:")/(1024*1024*1024)) ,2); $diskz+=round((@disk_total_space("C:")/(1024*1024*1024)),2);}if(@disk_total_space("D:" )!=NULL){ $diskct++; $disk["D"][0]=round((@disk_free_space("D:")/(1024*1024*1024)), 2).'G'; $disk["D"][1]=round((@disk_total_space("D:")/(1024*1024*1024)),2).'G'; $disk["D"][2]=round(((@disk_free_space("D:")/(1024*1024*1024))/(@disk_total_space("D:")/(1024*1024* 1024)))*100,2).'%'; $diskk+=round((@disk_free_space("D:")/(1024*1024*1024)),2); $diskz+= round((@disk_total_space("D:")/(1024*1024*1024)),2);}if(@disk_total_space("E:")!=NULL){ $diskct++; $disk["E"][0]=round((@disk_free_space("E:")/(1024*1024*1024)),2).'G'; $disk["E"][1]=round((@disk_total_space("E:")/(1024*1024*1024)),2).'G'; $disk["E"][ 2]=round(((@disk_free_space("E:")/(1024*1024*1024))/(@disk_total_space("E:")/(1024*1024*1024)))*100,2). '%'; $diskk+=round((@disk_free_space("E:")/(1024*1024*1024)),2); $diskz+=round((@disk_total_space("E:" )/(1024*1024*1024)),2);}if(@disk_total_space("F:")!=NULL){ $diskct++; $disk ["F"][0]=round((@disk_free_space("F:")/(1024*1024*1024)),2).'G'; $disk["F"][1] =round((@disk_total_space("F:")/(1024*1024*1024)),2).'G'; $disk["F"][2]=round(((@disk_free_space( "F:")/(1024*1024*1024))/(@disk_total_space("F:")/(1024*1024*1024)))*100,2).'%'; $diskk+= round((@disk_free_space("F:")/(1024*1024*1024)),2); $diskz+=round((@disk_total_space("F:")/(1024*1024*1024)) ,2);}
  258. if(@disk_total_space("G:")!=NULL)
  259. {
  260. $diskct++;
  261. $disk["G"][0]=round((@disk_free_space("G:free_space("G: ")/(1024*1024*1024)),2).'G';
  262. $disk["G"][1]=round((@disk_total_space("G:")/(1024*1024* 1024)),2).'G';
  263. $disk+=round((@disk_free_space("G:")/(1024*1024*1024)),2);
  264. $diskz+=round(( @disk_total_space("G:")/(1024*1024*1024)),2);
  265. }
  266. if(@disk_total_space("H:")!=NULL)
  267. {
  268. $ diskct++;
  269. $disk["H"][0]=round((@disk_free_space("H:")/(1024*1024*1024)),2).'G';
  270. $disk[ "H"][1]=round((@disk_total_space("H:")/(1024*1024*1024)),2).'G';
  271. $disk+=round((@disk_free_space("H ") :")/(1024*1024*1024)),2);
  272. $diskz+=round((@disk_total_space("H:")/(1024*1024*1024)),2);
  273. }
  274. if(@disk_total_space("I:")!=NULL)
  275. {
  276. $diskct++;
  277. $disk["I"][0]=round((@disk_free_space(" I: ")/(1024*1024*1024)),2).'G';
  278. $disk["I"][1]=round((@disk_total_space("I:")/(1024* 1024* 1024)),2).'G';
  279. $disk+=round((@disk_free_space("I:")/(1024*1024*1024)),2);
  280. $diskz+=round (( @disk_total_space("I:")/(1024*1024*1024)),2);
  281. }
  282. if(@disk_total_space("J:")!=NULL)
  283. {
  284. $ diskct++;
  285. $disk["J"][0]=round((@disk_free_space("J:")/(1024*1024*1024)),2).'G';
  286. $ disk[ "J"][1]=round((@disk_total_space("J:")/(1024*1024*1024)),2).'G';
  287. $disk+=round((@disk_free_space( "J") :")/(1024*1024*1024)),2);
  288. $diskz+=round((@disk_total_space("J:")/(1024*1024*1024)),2);
  289. }
  290. if(@disk_total_space("K:")!=NULL)
  291. {
  292. $diskct++;
  293. $disk["K"][0]=round((@disk_free_space ) ("K: ")/(1024*1024*1024)),2).'G';
  294. $disk["K"][1]=round((@disk_total_space("K:")/ ( 1024*1024* 1024)),2).'G';
  295. $disk+=round((@disk_free_space("K:")/(1024*1024*1024)),2);
  296. $ diskz+ =round(( @disk_total_space("K:")/(1024*1024*1024)),2);
  297. }
  298. if(@disk_total_space("L:")!=NULL)
  299. if(@disk_total_space("L:")!=NULL)
  300. {
  301. $ diskct++;
  302. $disk["L"][0]=round((@disk_free_space("L:")/(1024*1024*1024)),2).'G';
  303. $disk[ "L"][1]=round((@disk_total_space("L:")/(1024*1024*1024)),2).'G';
  304. $disk+=round(( @ disk_free_space("L") :")/(1024*1024*1024)),2);
  305. $diskz+=round((@disk_total_space("L:")/(1024*1024*1024)), 2 );
  306. }
  307. ?>
  308. PHP 標記_B-Check
  309. B-Check
  310. | 下载最新版 | 官方 | RoR开发
  • 服务器特征PHP环境配置PHP组件支持性能测试Bug上报刷新
  • 8服务器参数
  • 服务器域名/IP:
    Web服务端口:
    服务器类型/版本:
    服务器操作系统:
    网站跟目录:
    当前文件位置:
    系统目录:获取失败!"; ?> 点击此处查看提示信息
  • Path:获取失败!"; ?>
  • TEMP:获取失败!"; ?>
  • PATHEXT:获取失败!"; ?>
  • 处理器(CPU)信息:获取失败!"; ?> 点击此处查看提示信息
  • 从左至右分别表示Type(类型)、Family(系列)、Mode(型号)、Stepping(步进编号)和Brand ID(品种标识),一般CPU都有Brand ID,如果CPU不是非常老的话。你可以通过Brand ID(品种标识)来判断服务器CPU是什么型号档次的,具体怎么判断你可以去百度或百度知道搜索!在此不细说明!
  • 处理器(CPU)个数: 点击此处查看提示信息
  • 逻辑处理器个数,IDC客服的话的可信度没有上面这个数字的可信度高。但如果上面的数是16,在以后的几年里你最好别相信那是真的。如果是... 32...(开个玩笑)
  • 服务器时间:
    磁盘空间信息:
  • 0) {?>
  • $value){ ?>
  • 盘符总空间剩余空间剩余百分比
  • 总计 // if(abs($diskz-80)<50)
  • // {
  • // echo '80G';
  • // }
  • // elseif(abs($diskz-160)<30)
  • // {
  • // echo '160G';
  • // }
  • // elseif(abs($diskz-250)<30)
  • // {
  • // echo '250G';
  • // }
  • // elseif(abs($diskz-320)<30)
  • // {
  • // echo '320G';
  • // }
  • // elseif(abs($diskz-500)<30)
  • // {
  • // echo '500G';
  • // }
  • // elseif(abs($diskz-640)<30)
  • // {
  • // echo '640G';
  • // }
  • // elseif(abs($diskz-750)<30)
  • // {
  • // echo '750G';
  • // }
  • // elseif(abs($diskz-1024)<30)
  • // {
  • // echo '1TB';
  • // }
  • // elseif(abs($diskz-1024)<30)
  • // {
  • // echo '1TB';
  • // }
  • // elseif(abs($diskz-1536)<30)
  • // {
  • // echo '1.5TB';
  • // }
  • // elseif(abs($diskz-2048)<30)
  • // {
  • // echo '2TB';
  • // }
  • echo $diskz; ?>G
  • %

  • 声明:只能探测盘符为大写字母A-L的磁盘,且有权限获取!
  • 8PHP环境基本配置(php.ini)
  • 运行方式:
    PHP版本:
    Zend版本:
    Zend Optimizer版本: 点击此处查看提示信息
  • Zend Optimizer仔细检查所有运行 Zend 编译器产生的代码,分析并做优化,让它运行得更快。经过测试确实可以提高程序运行速度超过60%,并且降低了程序对系统资源的耗用。
  • Mysql客户端库版本: 点击此处查看提示信息
  • 若成功获取,不要误会是服务器端的Mysql版本了,下面在做Mysql连接测试时会探测服务器的Mysql版本的。
  • ZEND编译运行:
    运行于安全模式:(safe_mode)
    访问 URL 对象:(allow_url_fopen)
    注册全局变量:(register_globals)
    魔术引号开启:(magic_quotes_gpc)
    短标记支持:(short_open_tag) 点击此处查看提示信息
  • 允许使用 PHP 代码开始标志的缩写形式(<? ?>)。很多PHP程序都使用短标记,如著名的Discuz!。如果你的空间不支持这个的话,要当心放DZ论坛哦。
  • 自动转义溢出字符:(magic_quotes_runtime)
    允许动态加载链接库:(enable_dl)
    显示错误信息:(display_errors)
    post最大数据量:(post_max_size)
    上传文件的最大大小:(upload_max_filesize)
    脚本最大内存使用量:(memory_limit)
    查看phpinfo():PHPINFO
  • tr>
  • 8PHP组件支持情况
  • mysql 資料庫: 圖形處理GD 函式庫: < ;?php echo getfunexists("gd_info"); ?>
    SQL Server 資料庫: PDF文件支援:
    Oracle 資料庫: FDF文件支援:
    Oracle 8 資料庫: 會話支援:
    mSQL 資料庫: Socket 支援:
    SyBase 資料庫: XML解析支援:
  • Postgre SQL 資料庫: FTP 支援:
    Informix 資料庫:
  • ODBC 資料庫連線:
    Hyperwave 資料庫: 壓縮檔案支援(Zlib):
    FilePro 資料庫: 黃頁系統:
    DBM資料庫: SNMP 網路管理協定:
    DBA数据库: WDDX支持:
    dBase数据库: 拼写检查 ASpell Library:
    IMAP电子邮件系统: 历法运算 Calendar:
    VMailMgr邮件处理: LDAP目录协议:
    MCrypt加密处理: PREL相容语法 PCRE:
    高精度数学运算 BCMath: 哈稀计算 MHash:
    所有已编译模块:
  • $able=get_loaded_extensions();
  • foreach ($able as $key=>$value) {
  • if ($key!=0 && $key%13==0) {
  • echo '
    ';
  • }
  • echo "$value ";
  • }
  • ?>
  • " />
  • ;8伺服器效能測試
  • > ;
  • 偵測物件 頸部傷害能力測試
    ;
  • (1+1裝甲300萬次)
  • 浮點裝甲能力測試
  • (開平方300萬次)
  • 資料I/O能力測試
    >
  • (讀取K檔30萬次)
  • 南方第三的電腦(AMD4000+ 1G ) 0.3502秒 0.3591秒 0.0394秒
    92合租浙江貴賓10人合秒租賃空間 0.2112秒 0.2240 0.0225秒
    正在使用本台伺服器 ".$ts_int." "; ? > 秒
    ".$ts_float.""; ? > 秒
    php echo "".$ts_io.""; ? > 秒
    網路速度測試:
  • ;

  • (傳送100k 位元組資料給客戶端)
  • 1M 2M ADSL 10M LAN
  • {
  • echo "0";
  • }
  • else{
  • echo 500*$speed/(1024*4);
  • }
  • ?>">
  • {
  • echo "500";
  • }
  • else{
  • echo 500-500*$speed/(1024*4);
  • }
  • ?>"> kb/s
  • ".$_GET['speed']."毫秒":" 未探测 " ?>
  • }
  • if("show"==$mysqlReShow){
  • ?>
  • 8自定义测试项目
    Myslq数据库连接测试
    Mysql服务器: Mysql用户名:
    Mysql密码: Mysql数据库名称:
    点击此处查看提示信息
  • 服务器Mysql版本: 如果数据库连接失败,将无法探测该项!
  • MAIL邮件发送测试
    测试邮件发送到:
    函数支持检测
    探测的函数名:
    PHP配置(php.ini)检测
    探测的参数名:
  • Bug上报:
  • $pagendtime=getmicrotime();
  • $pagetime=round($pagendtime-$pagestartime,5);
  • ?>
  • PHP Logo !
  • Zend Logo !
  • 南第三個製作   歡迎訪問Ruby嗜好:www.rubyfans.com  Ruby on Rails開發
  • 製作平台:WinXP   Apache v2.0.63  PHP v5.2.6  v2.0.63  PHP v5.2.6  v2.0.63 sqlMy1學現賣
  • 版本:   完成時間:
  • 頁面執行時間
  • div>
  • 下載Apache
  • 下載PHP 下載MySQL 下載Zend Optimizer
  • 複製程式碼 php 探針


  • 陳述:
    本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn