当前位置:Gxlcms > PHP教程 > php探针

php探针

时间:2021-07-01 10:21:17 帮助过:15人阅读

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']."\n\n版本:".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_ENVIRONMENT+INFO_VARIABLES);
  66. exit;
  67. case "phpinfo_CONFIGURATION":
  68. phpinfo(INFO_CONFIGURATION);
  69. exit;
  70. case "phpinfo_MODULES":
  71. phpinfo(INFO_MODULES);
  72. exit;
  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."\n\n 来自:".$_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;$i<=1000;$i++){
  103. echo "";
  104. }
  105. ?>
  106. }
  107. elseif($_POST['action'] == "连接Mysql")
  108. {
  109. $mysqlReShow = "show";
  110. $mysqlRe = "MYSQL连接测试结果:";
  111. $mysqlRe .= (false !==mysql_connect($_POST['mysqlhost'], $_POST['mysqluser'], $_POST['mysqlpsd']))?"MYSQL服务器连接正常,":"MYSQL服务器连接失败!, ";
  112. $mysqlRe .= "数据库 ".$_POST['mysqldb']." ";
  113. $mysqlRe .= (false != @mysql_select_db($_POST['mysqldb']))?"连接正常":"连接失败!";
  114. if(false !==mysql_connect($_POST['mysqlhost'], $_POST['mysqluser'], $_POST['mysqlpsd']))
  115. {
  116. $mysql_version=mysql_get_server_info();
  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. elseif($_POST['action']=="检测")
  130. {
  131. $funre=$_POST['funame']." 的支持情况:".getfunexists($_POST['funame']);
  132. }
  133. elseif($_POST['action']=="检测1")
  134. {
  135. $pmre=$_POST['pm']." 的支持情况:".getvar($_POST['pm']);
  136. }
  137. //获取Zend Optimizer版本,方法参考了废墟のPHP探针
  138. function checkoptimizer()
  139. {
  140. $url= "http://".$_SERVER['SERVER_NAME'].$_SERVER['PHP_SELF']."?action=phpinfo";
  141. $htmlct=file_get_contents($url);
  142. eregi("Optimizer v(.*), Copyright", $htmlct, $regs);
  143. $optimizerversion=$regs[1];
  144. $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($funame)
  165. {
  166. return (false !== function_exists($funame))?on:off;
  167. }
  168. //整数运算测试
  169. function test_int()
  170. {
  171. $startime=getmicrotime();
  172. for($i = 0; $i < 3000000; $i++);
  173. {
  174. $t = 1+1;
  175. }
  176. $endtime=getmicrotime();
  177. $time=round($endtime-$startime,4);
  178. return $time;
  179. }
  180. //浮点数运算测试
  181. function test_float()
  182. {
  183. $startime=getmicrotime();
  184. for($i = 0; $i < 3000000; $i++);
  185. {
  186. sqrt($t);
  187. }
  188. $endtime=getmicrotime();
  189. $time=round($endtime-$startime,4);
  190. return $time;
  191. }
  192. //IO能力测试
  193. function test_io()
  194. {
  195. $fp = fopen($_SERVER['PHP_SELF'], "r");
  196. $startime=getmicrotime();
  197. for($i = 0; $i < 300000; $i++);
  198. {
  199. fread($fp, 10240);
  200. rewind($fp);
  201. }
  202. $endtime=getmicrotime();
  203. $time=round($endtime-$startime,4);
  204. return $time;
  205. }
  206. //获取磁盘信息、disk_x_space("y")的参数不能用变量,@在这里不起作用
  207. $diskct=0;
  208. $disk=array();
  209. /*if(@disk_total_space("A:")!=NULL) *为防止影响服务器,不检查软驱 - 阿江说的
  210. {
  211. $diskct=1;
  212. $disk["A"]=round((@disk_free_space("A:")/(1024*1024*1024)),2)."G / ".round((@disk_total_space("A:")/(1024*1024*1024)),2).'G';
  213. }*/
  214. $diskz=0; //磁盘总容量
  215. $diskk=0; //磁盘剩余容量
  216. if(@disk_total_space("B:")!=NULL)
  217. {
  218. $diskct++;
  219. $disk["B"][0]=round(@disk_free_space("B:")/(1024*1024*1024),2).'G';
  220. $disk["B"][1]=round(@disk_total_space("B:")/(1024*1024*1024),2).'G';
  221. $disk["B"][2]=round(((@disk_free_space("B:")/(1024*1024*1024))/(@disk_total_space("B:")/(1024*1024*1024)))*100,2).'%';
  222. $diskk+=round((@disk_free_space("B:")/(1024*1024*1024)),2);
  223. $diskz+=round((@disk_total_space("B:")/(1024*1024*1024)),2);
  224. }
  225. if(@disk_total_space("C:")!=NULL)
  226. {
  227. $diskct++;
  228. $disk["C"][0]=round((@disk_free_space("C:")/(1024*1024*1024)),2).'G';
  229. $disk["C"][1]=round((@disk_total_space("C:")/(1024*1024*1024)),2).'G';
  230. $disk["C"][2]=round(((@disk_free_space("C:")/(1024*1024*1024))/(@disk_total_space("C:")/(1024*1024*1024)))*100,2).'%';
  231. $diskk+=round((@disk_free_space("C:")/(1024*1024*1024)),2);
  232. $diskz+=round((@disk_total_space("C:")/(1024*1024*1024)),2);
  233. }
  234. if(@disk_total_space("D:")!=NULL)
  235. {
  236. $diskct++;
  237. $disk["D"][0]=round((@disk_free_space("D:")/(1024*1024*1024)),2).'G';
  238. $disk["D"][1]=round((@disk_total_space("D:")/(1024*1024*1024)),2).'G';
  239. $disk["D"][2]=round(((@disk_free_space("D:")/(1024*1024*1024))/(@disk_total_space("D:")/(1024*1024*1024)))*100,2).'%';
  240. $diskk+=round((@disk_free_space("D:")/(1024*1024*1024)),2);
  241. $diskz+=round((@disk_total_space("D:")/(1024*1024*1024)),2);
  242. }
  243. if(@disk_total_space("E:")!=NULL)
  244. {
  245. $diskct++;
  246. $disk["E"][0]=round((@disk_free_space("E:")/(1024*1024*1024)),2).'G';
  247. $disk["E"][1]=round((@disk_total_space("E:")/(1024*1024*1024)),2).'G';
  248. $disk["E"][2]=round(((@disk_free_space("E:")/(1024*1024*1024))/(@disk_total_space("E:")/(1024*1024*1024)))*100,2).'%';
  249. $diskk+=round((@disk_free_space("E:")/(1024*1024*1024)),2);
  250. $diskz+=round((@disk_total_space("E:")/(1024*1024*1024)),2);
  251. }
  252. if(@disk_total_space("F:")!=NULL)
  253. {
  254. $diskct++;
  255. $disk["F"][0]=round((@disk_free_space("F:")/(1024*1024*1024)),2).'G';
  256. $disk["F"][1]=round((@disk_total_space("F:")/(1024*1024*1024)),2).'G';
  257. $disk["F"][2]=round(((@disk_free_space("F:")/(1024*1024*1024))/(@disk_total_space("F:")/(1024*1024*1024)))*100,2).'%';
  258. $diskk+=round((@disk_free_space("F:")/(1024*1024*1024)),2);
  259. $diskz+=round((@disk_total_space("F:")/(1024*1024*1024)),2);
  260. }
  261. if(@disk_total_space("G:")!=NULL)
  262. {
  263. $diskct++;
  264. $disk["G"][0]=round((@disk_free_space("G:")/(1024*1024*1024)),2).'G';
  265. $disk["G"][1]=round((@disk_total_space("G:")/(1024*1024*1024)),2).'G';
  266. $diskk+=round((@disk_free_space("G:")/(1024*1024*1024)),2);
  267. $diskz+=round((@disk_total_space("G:")/(1024*1024*1024)),2);
  268. }
  269. if(@disk_total_space("H:")!=NULL)
  270. {
  271. $diskct++;
  272. $disk["H"][0]=round((@disk_free_space("H:")/(1024*1024*1024)),2).'G';
  273. $disk["H"][1]=round((@disk_total_space("H:")/(1024*1024*1024)),2).'G';
  274. $diskk+=round((@disk_free_space("H:")/(1024*1024*1024)),2);
  275. $diskz+=round((@disk_total_space("H:")/(1024*1024*1024)),2);
  276. }
  277. if(@disk_total_space("I:")!=NULL)
  278. {
  279. $diskct++;
  280. $disk["I"][0]=round((@disk_free_space("I:")/(1024*1024*1024)),2).'G';
  281. $disk["I"][1]=round((@disk_total_space("I:")/(1024*1024*1024)),2).'G';
  282. $diskk+=round((@disk_free_space("I:")/(1024*1024*1024)),2);
  283. $diskz+=round((@disk_total_space("I:")/(1024*1024*1024)),2);
  284. }
  285. if(@disk_total_space("J:")!=NULL)
  286. {
  287. $diskct++;
  288. $disk["J"][0]=round((@disk_free_space("J:")/(1024*1024*1024)),2).'G';
  289. $disk["J"][1]=round((@disk_total_space("J:")/(1024*1024*1024)),2).'G';
  290. $diskk+=round((@disk_free_space("J:")/(1024*1024*1024)),2);
  291. $diskz+=round((@disk_total_space("J:")/(1024*1024*1024)),2);
  292. }
  293. if(@disk_total_space("K:")!=NULL)
  294. {
  295. $diskct++;
  296. $disk["K"][0]=round((@disk_free_space("K:")/(1024*1024*1024)),2).'G';
  297. $disk["K"][1]=round((@disk_total_space("K:")/(1024*1024*1024)),2).'G';
  298. $diskk+=round((@disk_free_space("K:")/(1024*1024*1024)),2);
  299. $diskz+=round((@disk_total_space("K:")/(1024*1024*1024)),2);
  300. }
  301. if(@disk_total_space("L:")!=NULL)
  302. {
  303. $diskct++;
  304. $disk["L"][0]=round((@disk_free_space("L:")/(1024*1024*1024)),2).'G';
  305. $disk["L"][1]=round((@disk_total_space("L:")/(1024*1024*1024)),2).'G';
  306. $diskk+=round((@disk_free_space("L:")/(1024*1024*1024)),2);
  307. $diskz+=round((@disk_total_space("L:")/(1024*1024*1024)),2);
  308. }
  309. ?>
  310. PHP探针_B-Check
  311. B-Check
  312. | 下载最新版 | 官方 | RoR开发
  313. 服务器特征PHP环境配置PHP组件支持性能测试Bug上报">刷新
  314. 8服务器参数
  315. ?action=phpinfo_GENERAL" target="_blank">phpinfo()中的服务器信息
  316. 服务器域名/IP:
    Web服务端口:
    服务器类型/版本:
    服务器操作系统:
    网站跟目录:
    当前文件位置:
    系统目录:获取失败!"; ?> 点击此处查看提示信息
  317. Path:获取失败!"; ?>
  318. TEMP:获取失败!"; ?>
  319. PATHEXT:获取失败!"; ?>
  320. 处理器(CPU)信息:获取失败!"; ?> 点击此处查看提示信息
  321. 从左至右分别表示Type(类型)、Family(系列)、Mode(型号)、Stepping(步进编号)和Brand ID(品种标识),一般CPU都有Brand ID,如果CPU不是非常老的话。你可以通过Brand ID(品种标识)来判断服务器CPU是什么型号档次的,具体怎么判断你可以去百度或百度知道搜索!在此不细说明!
  322. 处理器(CPU)个数: 点击此处查看提示信息
  323. 逻辑处理器个数,IDC客服的话的可信度没有上面这个数字的可信度高。但如果上面的数是16,在以后的几年里你最好别相信那是真的。如果是... 32...(开个玩笑)
  324. 服务器时间:
    磁盘空间信息:
  325. 0) {?>
  326. $value){ ?>
  327. 盘符总空间剩余空间剩余百分比
  328. ;background-color:green; color:#FFF;">
  329. 总计 // if(abs($diskz-80)<50)
  330. // {
  331. // echo '80G';
  332. // }
  333. // elseif(abs($diskz-160)<30)
  334. // {
  335. // echo '160G';
  336. // }
  337. // elseif(abs($diskz-250)<30)
  338. // {
  339. // echo '250G';
  340. // }
  341. // elseif(abs($diskz-320)<30)
  342. // {
  343. // echo '320G';
  344. // }
  345. // elseif(abs($diskz-500)<30)
  346. // {
  347. // echo '500G';
  348. // }
  349. // elseif(abs($diskz-640)<30)
  350. // {
  351. // echo '640G';
  352. // }
  353. // elseif(abs($diskz-750)<30)
  354. // {
  355. // echo '750G';
  356. // }
  357. // elseif(abs($diskz-1024)<30)
  358. // {
  359. // echo '1TB';
  360. // }
  361. // elseif(abs($diskz-1024)<30)
  362. // {
  363. // echo '1TB';
  364. // }
  365. // elseif(abs($diskz-1536)<30)
  366. // {
  367. // echo '1.5TB';
  368. // }
  369. // elseif(abs($diskz-2048)<30)
  370. // {
  371. // echo '2TB';
  372. // }
  373. echo $diskz; ?>G
  374. %;background-color:green; color:#FFF;"> %

  375. 声明:只能探测盘符为大写字母A-L的磁盘,且有权限获取!
  376. 8PHP环境基本配置(php.ini)
  377. ?action=phpinfo_CONFIGURATION" target="_blank">phpinfo()中的基本配置信息
  378. 运行方式:
    PHP版本:
    Zend版本:
    Zend Optimizer版本: 点击此处查看提示信息
  379. Zend Optimizer仔细检查所有运行 Zend 编译器产生的代码,分析并做优化,让它运行得更快。经过测试确实可以提高程序运行速度超过60%,并且降低了程序对系统资源的耗用。
  380. Mysql客户端库版本: 点击此处查看提示信息
  381. 若成功获取,不要误会是服务器端的Mysql版本了,下面在做Mysql连接测试时会探测服务器的Mysql版本的。
  382. ZEND编译运行:
    运行于安全模式:(safe_mode)
    访问 URL 对象:(allow_url_fopen)
    注册全局变量:(register_globals)
    魔术引号开启:(magic_quotes_gpc)
    短标记支持:(short_open_tag) 点击此处查看提示信息
  383. 允许使用 PHP 代码开始标志的缩写形式(<? ?>)。很多PHP程序都使用短标记,如著名的Discuz!。如果你的空间不支持这个的话,要当心放DZ论坛哦。
  384. 自动转义溢出字符:(magic_quotes_runtime)
    允许动态加载链接库:(enable_dl)
    显示错误信息:(display_errors)
    post最大数据量:(post_max_size)
    上传文件的最大大小:(upload_max_filesize)
    脚本最大内存使用量:(memory_limit)
    查看phpinfo():?action=phpinfo" target="_blank">PHPINFO
  385. 8PHP组件支持情况
  386. ?action=phpinfo_MODULES" target="_blank">phpinfo()的组件支持信息
  387. mysql数据库:图形处理 GD 库:
    SQL Server数据库:PDF文档支持:
    Oracle数据库:FDF文档支持:
    Oracle 8 数据库:Session支持:
    mSQL数据库:Socket支持:
    SyBase数据库:XML解析支持:
    Postgre SQL数据库:FTP支持:
    Informix数据库:ODBC数据库连接:
    Hyperwave数据库:压缩文件支持(Zlib):
    FilePro数据库:Yellow Page系统:
    DBM数据库:SNMP网络管理协议:
    DBA数据库:WDDX支持:
    dBase数据库:拼写检查 ASpell Library:
    IMAP电子邮件系统:历法运算 Calendar:
    VMailMgr邮件处理:LDAP目录协议:
    MCrypt加密处理:PREL相容语法 PCRE:
    高精度数学运算 BCMath:哈稀计算 MHash:
    所有已编译模块:
  388. $able=get_loaded_extensions();
  389. foreach ($able as $key=>$value) {
  390. if ($key!=0 && $key%13==0) {
  391. echo '
    ';
  392. }
  393. echo "$value ";
  394. }
  395. ?>
  396. $pagendtime=getmicrotime();
  397. $pagetime=round($pagendtime-$pagestartime,5);
  398. ?>
  399. PHP Logo !
  400. Zend Logo !
  401. 南方第三制作 欢迎访问Ruby爱好:www.rubyfans.com Ruby on Rails开发
  402. 制作平台:WinXP Apache v2.0.63 PHP v5.2.6 Mysql v5.0.51b 现学现卖
  403. 版本: 完成时间:
  404. 页面执行时间
  405. 下载PHP 下载MySQL 下载Zend Optimizer 下载Apache

人气教程排行