php 프로브
/* ------------- -------------- B-체크 v0.05.4 ==================================== | 제작 | http://www.rubyfans.com ===================== ======== | 조사 공식: 없음 최종 업데이트: 2010.9.6 11:30 | QQ:307292967 - ---------- --------------------------- ---------- --- | | 집필 과정에서 많은 훌륭한 조사를 통해 배웠으며 많은 수정과 최적화를 거쳤습니다. 내 자신의 이해에 따르면, 이것은 현재 정보 탐지를 위한 가장 포괄적인 PHP 프로브입니다! | 합리적인 계획 없이 전체 실행 프레임워크를 생각대로 작성했습니다. 나중에 시간이 나면 추가로 업데이트할 예정입니다. | ----- ----- -------------------------------- ----- ------------- */ //모든 오류 메시지 억제 ini_set('display_errors', 'off') //페이지 실행 시간 계산 함수 function getmicrotime(){ list($usec, $sec) =explore(" ",microtime()) return ((float)$usec (float)$sec) } $pagestartime=getmicrotime(); //상수 표시 define("on", "예 ");
define("off", "아니요< ;/b> 글꼴>");
define("version", "v0.05.4");//버전 번호
define("overtime","2010.9.6 11: 30");//완료 time
//디스플레이 스위치
$mysqlReShow = "none";
//알림 사용 이전 버전의 경우 알림 처리가 불가능하여 합리적으로 알림이 지속적으로 전달됩니다. 내 메일함에 이메일이 가득 들어있어요.
if($_COOKIE["had_send"] != "yes") {
$messagex="보낸 사람: http://".$_SERVER['SERVER_NAME'].$_SERVER['PHP_SELF']. "nn 버전:".version;
$tox="307292967@qq.com";
$subjectx="B-check 사용자 - ".version;
mail($tox, $subjectx, $ messagex);
setcookie("had_send", "yes");
}
//성능 정보 결과 새로 고침
$ts_int = (false == 비어 있음($_POST['tsint ']))?$_POST['tsint']:test_int();
$ts_float = (false == 비어 있음($_POST['tsfloat']))?$_POST['tsfloat']:test_float() ;
$ts_io = (false == 비어 있음($_POST['tsio']))?$_POST['tsio']:test_io();
if(isset($_POST['speed']) )
{
$speed=round(100/($_POST['speed']/1000),2);
}
elseif($_GET['speed']=="0 ")
{
$speed=6666.67;
}
elseif(isset($_GET['speed']) 및 $_GET['speed']>0)
{
$speed=round(100/($_GET['speed']/1000),2);
}
else
{
$speed=" 감지되지 않음 ";
}
//phpinfo() 정보 열거
switch ($_GET['action']){
case "phpinfo_GENERAL":
phpinfo(INFO_GENERAL INFO_ENVIRONMENT INFO_VARIABLES);
종료;
케이스 "phpinfo_CONFIGURATION":
phpinfo(INFO_CONFIGURATION);
종료;
케이스 "phpinfo_MODULES":
phpinfo(INFO_MODULES) ;
종료;
케이스 "phpinfo":
phpinfo();
종료;
기본값:
break;
}
//양식 처리
if (isset($_POST['Buginfo']) 및 $_POST['act']=="Submit"){//버그 제출!
$message=$message."nn 보낸 사람:".$_SERVER[ ' SERVER_NAME'].$_SERVER['PHP_SELF'];
$to="307292967@qq.com";
$subject="하오 형제님, 몇 살이신가요? ";
$jg=@mail($to, $subject, $message);
$jgprint= (true==$jg)?"신고가 완료되었습니다! 감사합니다! ":"신고에 실패했습니다! 나에게 편지 보내기: 307292967@qq.com ";
}
elseif($_POST['action']=="정수 연산")
{
$ts_int= test_int( );
}
elseif($_POST['action']=="부동 소수점 연산")
{
$ts_float=test_float();
}
elseif ($ _POST['action']=="IO 테스트")
{
$ts_io=test_io();
}
elseif($_POST['action']=="테스트 시작 ") //인터넷 속도 테스트, 개선을 기다리고 있습니다.
{
?>
var acd1;
acd1 = new Date();
acd1ok =acd1.getTime();
for($i=1;$i<=1000;$i ){ echo "";
}
?>
var acd2;
acd2 = new Date();
acd2ok=acd2.getTime();
창 .location = '?speed=' (acd2ok-acd1ok) '#bottom';
} elseif($_POST['action'] = = "Mysql 연결") { $mysqlReShow = "show"; $mysqlRe = "MYSQL 연결 테스트 결과:"; $mysqlRe .= (false !==mysql_connect($_POST) ['mysqlhost'], $_POST['mysqluser'], $_POST['mysqlpsd']))?"MYSQL 서버 연결이 정상입니다 ,":"< ;font color="red">MYSQL 서버 연결에 실패했습니다! , ";
$mysqlRe .= "Database".$_POST['mysqldb']." $mysqlRe .= (false != @mysql_select_db($_POST['mysqldb']))?"연결이 정상입니다 ": "연결에 실패했습니다! ";
if(false !==mysql_connect($_POST['mysqlhost'], $_POST['mysqluser'], $_POST['mysqlpsd']))
{
$mysql_version=mysql_get_server_info();
}
else
{
$mysql_version="구하는데 실패했습니다! ";
}
$mysqlRe .= ", Mysql 서버 버전: ";
$mysqlRe .= $mysql_version;
}
elseif($_POST['action '] == "보내기")
{
$mailRe = (false !== @mail($_POST["mailReceiver"], "프로브 이메일 테스트", "성공적으로 전송되었습니다!"))?" < ;font color="#090">전송 완료":"전송 실패! ";
}
elseif($_POST[ 'action ']=="탐지")
{
$funre=$_POST['funame']." 지원: ".getfunexists($_POST['funame']);
}
elseif($_POST['action']=="탐지 1")
{
$pmre=$_POST['pm']." 지원: ".getvar( $_POST['pm' ]);
}
//Zend Optimizer 버전을 얻으세요. 이 메소드는 망가진 PHP 프로브
checkoptimizer()
{
$url= "http ://"를 참조합니다. $_SERVER['SERVER_NAME'].$_SERVER['PHP_SELF']."?action=phpinfo";
$htmlct=file_get_contents($url);
eregi("Optimizer v( .*),  ;Copyright", $htmlct, $regs);
$optimizerversion=$regs[1];
$optimizerversion=(''!=$optimizerversion)?$optimizerversion:"실패 얻기 위해! ";
return $optimizerversion;
}
//php.ini 구성 매개변수 가져오기, iProber
function getvar($varname)
{
스위치 참조 ( $var=get_cfg_var($varname)?get_cfg_var($varname):ini_get($varname))
{
사례 0:
반환;
중단;
사례 1:
return on;
break;
default:
return $var;
break;
}
}
//함수 정의 판단
function getfunexists( $ funame)
{
return (false !== function_exists($funame))?on:off;
}
//정수 연산 테스트
function test_int()
{
$starttime=getmicrotime();
for($i = 0; $i < 3000000; $i ); { $t = 1 1; } $ endtime=getmicrotime(); $time=round($endtime-$starttime,4); return $time; } //부동 소수점 연산 테스트 function test_float( ) { $starttime=getmicrotime(); for($i = 0; $i < 3000000; $i ); { sqrt($t); } $endtime=getmicrotime(); $time=round($endtime-$starttime,4); return $time; } //IO 기능 테스트 function test_io() { $fp = fopen($_SERVER['PHP_SELF'], "r"); $starttime=getmicrotime(); for($i = 0; $ i < 300000; $i ); { fread($fp, 10240); rewind($fp); } $endtime=getmicrotime(); $time=round($endtime-$starttime,4); return $time; } //디스크 정보 가져오기, disk_x_space("y")의 매개변수는 변수를 사용할 수 없습니다. @는 그렇지 않습니다. 여기에서 사용됨 작동 $diskct=0; $disk=array(); /*if(@disk_total_space("A:")!=NULL) *서버에 영향을 미치지 않도록 플로피 드라이브 확인되지 않음 - A Jiang이 { $diskct=1; $disk["A"]=round((@disk_free_space("A:")/(1024*1024*1024))라고 말했습니다. ,2). "G / ".round((@disk_total_space("A:")/(1024*1024*1024)),2).'G'; }*/ $ diskz=0; //전체 디스크 용량 $diskk=0; //남은 디스크 용량 if(@disk_total_space("B:")!=NULL) { $diskct ; $disk ["B"][0]=round(@disk_free_space("B:")/(1024*1024*1024),2).'G'; $disk["B"][ 1]=라운드 (@disk_total_space("B:")/(1024*1024*1024),2).'G'; $disk["B"][2]=라운드(((@disk_free_space( "B:" )/(1024*1024*1024))/(@disk_total_space("B:")/(1024*1024*1024)))*100,2).'%'; $diskk = round((@ disk_free_space("B:")/(1024*1024*1024)),2); $diskz =round((@disk_total_space("B:")/(1024*1024*1024)) ,2); } if(@disk_total_space("C:")!=NULL) { $diskct ; $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]=라운드(((@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); } if(@disk_total_space("G:")!=NULL) { $diskct ; $disk["G"][0]=round((@disk_free_space("G: ")/(1024*1024*1024)),2).'G'; $disk["G"][1]=round((@disk_total_space("G:")/(1024*1024* 1024)),2).'G'; $diskk =round((@disk_free_space("G:")/(1024*1024*1024)),2); $diskz =round(( @disk_total_space("G:")/(1024*1024*1024)),2); } if(@disk_total_space("H:")!=NULL) { $ diskct ; $disk["H"][0]=round((@disk_free_space("H:")/(1024*1024*1024)),2).'G'; $disk[ "H"][1]=round((@disk_total_space("H:")/(1024*1024*1024)),2).'G'; $diskk =round((@disk_free_space("H :")/(1024*1024*1024)),2); $diskz =round((@disk_total_space("H:")/(1024*1024*1024)),2); } if(@disk_total_space("I:")!=NULL) { $diskct ; $disk["I"][0]=round((@disk_free_space("I: ")/(1024*1024*1024)),2).'G'; $disk["I"][1]=round((@disk_total_space("I:")/(1024*1024* 1024)),2).'G'; $diskk =round((@disk_free_space("I:")/(1024*1024*1024)),2); $diskz =round(( @disk_total_space("I:")/(1024*1024*1024)),2); } if(@disk_total_space("J:")!=NULL) { $ diskct ; $disk["J"][0]=round((@disk_free_space("J:")/(1024*1024*1024)),2).'G'; $disk[ "J"][1]=round((@disk_total_space("J:")/(1024*1024*1024)),2).'G'; $diskk =round((@disk_free_space("J :")/(1024*1024*1024)),2); $diskz =round((@disk_total_space("J:")/(1024*1024*1024)),2); } if(@disk_total_space("K:")!=NULL) { $diskct ; $disk["K"][0]=round((@disk_free_space("K: ")/(1024*1024*1024)),2).'G'; $disk["K"][1]=round((@disk_total_space("K:")/(1024*1024* 1024)),2).'G'; $diskk =round((@disk_free_space("K:")/(1024*1024*1024)),2); $diskz =round(( @disk_total_space("K:")/(1024*1024*1024)),2); } if(@disk_total_space("L:")!=NULL) { $ diskct ; $disk["L"][0]=round((@disk_free_space("L:")/(1024*1024*1024)),2).'G'; $disk[ "L"][1]=round((@disk_total_space("L:")/(1024*1024*1024)),2).'G'; $diskk =round((@disk_free_space("L :")/(1024*1024*1024)),2); $diskz =round((@disk_total_space("L:")/(1024*1024*1024)),2); } ?>
PHP探针_B-Check
body {배경색 : #ffffff; #000000; 글꼴-가족:Arial, Helvetica, sans-serif;}
pre {margin: 0px;}
{text-장식: 없음; : #000000;}
a:hover {텍스트-장식: 없음; 배경색:#888888; 색상:#99FF00;}
테이블 {border-collapse:collapse;margin: auto;}
td,th { 테두리: 1px 솔리드 #000000; 패딩-오른쪽:4px; 패딩-하단:1px; 수직 정렬:왼쪽 ;}
span { 글꼴 무게: 일반; 패딩 오른쪽: 4px }
.e {배경 색상: #ccccff; 색상: #000000;}
.h {배경 색상: # 9999cc; 글꼴 크기: 14px;}
.vr {배경 색상: #cccccc; }
.vr2 {배경 색상: #cccccc; 색상: #000000;}
img {테두리: 0px;}
시간 {폭: 600px 배경 색상: #cccccc; 높이: 1px; 색상: #000000;}
.notice {color: #CC3300;}
.center {text-align:center;}
.gbutton {Background-color: #ccccff;border- color:#003333;border-width:1px;}
.textborder {border-top-width: 1px;border-right-width: 1px;border-bottom-width: 1px;border-left-width: 1px; 테두리 상단 색상: #9999cc;테두리 오른쪽 색상: #9999cc;테두리 하단 색상: #9999cc;
테두리 왼쪽 색상: #9999cc;}
.td1 {테두리 상단: rgb(0,0,0) 1px 홈; 테두리-하단: rgb(0,0,0) 1px 홈; 테두리-왼쪽: rgb(0,0,0) 1px 홈; BORDER-오른쪽: rgb(0,0,0) 1px 홈}
.td2 {BORDER-top: rgb(0,0,0) 1px 홈; 테두리-하단: rgb(0,0,0) 1px 홈; BORDER-오른쪽: rgb(0,0,0) 1px 홈}
function ShowHide(item1){
var itemtable=document.getElementById(item1);
if(itemtable.style.display=='')
itemtable.style.display='none';
else
itemtable.style.display ='';
}
8 PHP环境基本配置(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
< ;input name="speed" type="hidden" value=" " />
{ echo "0"; } else{ echo 500*$speed/(1024*4); } ?>">
{ echo "500"; } else{ echo 500-500*$speed/(1024*4); } ?>"> kb/s
".$_GET['speed']."毫秒":" 未探测 " ?>