程序師世界是廣大編程愛好者互助、分享、學習的平台,程序師世界有你更精彩!
首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫知識
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
 程式師世界 >> 編程語言 >> 網頁編程 >> PHP編程 >> 關於PHP編程 >> PHP程序防止ddos,dns,集群服務器攻擊

PHP程序防止ddos,dns,集群服務器攻擊

編輯:關於PHP編程

代碼片段(1)

[代碼] ddos,dns,集群服務器攻擊QQ33258影子可以測試滿意擔保

view source print? 001   002 <?php 003   004 //查詢禁止IP 005   006 $ip =$_SERVER['REMOTE_ADDR']; 007   008 $fileht=".htaccess2"; 009   010 if(!file_exists($fileht))file_put_contents($fileht,""); 011   012 $filehtarr=@file($fileht); 013   014 if(in_array($ip."\r\n",$filehtarr))die("Warning:"."<br>"."Your IP address are forbided by some reason, IF you have any question Pls emill to [email protected]!"); 015   016   017   018 //加入禁止IP 019   020 $time=time(); 021   022 $fileforbid="log/forbidchk.dat"; 023   024 if(file_exists($fileforbid)) 025   026 if($time-filemtime($fileforbid)>60)unlink($fileforbid); 027   028 else{ 029   030 $fileforbidarr=@file($fileforbid); 031   032 if($ip==substr($fileforbidarr[0],0,strlen($ip))) 033   034 { 035   036 if($time-substr($fileforbidarr[1],0,strlen($time))>600)unlink($fileforbid); 037   038 elseif($fileforbidarr[2]>600){file_put_contents($fileht,$ip."\r\n",FILE_APPEND);unlink($fileforbid);} 039   040 else{$fileforbidarr[2]++;file_put_contents($fileforbid,$fileforbidarr);} 041   042 } 043   044 } 045   046 } 047   048 //防刷新 049   050 $str=""; 051   052 $file="log/ipdate.dat"; 053   054 if(!file_exists("log")&&!is_dir("log"))mkdir("log",0777); 055   056 if(!file_exists($file))file_put_contents($file,""); 057   058 $allowTime = 120;//防刷新時間 059   060 $allowNum=10;//防刷新次數 061   062 $uri=$_SERVER['REQUEST_URI']; 063   064 $checkip=md5($ip); 065   066 $checkuri=md5($uri); 067   068 $yesno=true; 069   070 $ipdate=@file($file); 071   072 foreach($ipdate as $k=>$v) 073   074 { $iptem=substr($v,0,32); 075   076 $uritem=substr($v,32,32); 077   078 $timetem=substr($v,64,10); 079   080 $numtem=substr($v,74); 081   082 if($time-$timetem<$allowTime){ 083   084 if($iptem!=$checkip)$str.=$v; 085   086 else{ 087   088 $yesno=false; 089   090 if($uritem!=$checkuri)$str.=$iptem.$checkuri.$time."1\r\n"; 091   092 elseif($numtem<$allowNum)$str.=$iptem.$uritem.$timetem.($numtem+1)."\r\n"; 093   094 else 095   096 { 097   098 if(!file_exists($fileforbid)){$addforbidarr=array($ip."\r\n",time()."\r\n",1);file_put_contents($fileforbid,$addforbidarr);} 099   100 file_put_contents("log/forbided_ip.log",$ip."--".date("Y-m-d H:i:s",time())."--".$uri."\r\n",FILE_APPEND); 101   102 $timepass=$timetem+$allowTime-$time; 103   104 die("Warning:"."<br>"."Sorry,you are forbided by refreshing frequently too much, Pls wait for ".$timepass." seconds to continue!"); 105   106 } 107   108 } 109   110 } 111   112 } 113   114 if($yesno) $str.=$checkip.$checkuri.$time."1\r\n"; 115   116 file_put_contents($file,$str); 117   118 ?>

  1. 上一頁:
  2. 下一頁:
Copyright © 程式師世界 All Rights Reserved