浅析PHP程序防止ddos,dns,集群服务器攻击的解决办法_php技巧

WBOY
发布: 2016-05-17 09:00:34
原创
1207 人浏览过

废话不多说了,上代码

复制代码代码如下:

//查询禁止IP
$ip =$_SERVER['REMOTE_ADDR'];
$fileht=".htaccess2";
if(!file_exists($fileht))
 file_put_contents($fileht,"");
$filehtarr=@file($fileht);
if(in_array($ip."rn",$filehtarr))
 die("警告:"."
"."您的IP地址由于某种原因被禁止,如果您有任何疑问请发邮件至shop@mydalle.com!");
//加入禁止IP
$time=time();
$fileforbid="log/forbidchk.dat";
if(file_exists($fileforbid)) {
 if($time-filemtime($fileforbid) >60)
  取消链接($fileforbid);
 else {
  $fileforbidarr=@file($fileforbid);
  if($ip==substr($fileforbidarr[0],0, strlen($ip))) {
   if($time-substr($fileforbidarr[1],0,strlen($time))>600)
    unlink($fileforbid);
   elseif( $fileforbidarr[2]>600) {
    file_put_contents($fileht,$ip."rn",FILE_APPEND);
    取消链接($fileforbid);
   } else {
    $fileforbidarr[2 ] ;
    file_put_contents($fileforbid,$fileforbidarr);
   }
  }
 }
}
//防刷新
$str=" ";
$file="log/ipdate.dat";
if(!file_exists("log")&&!is_dir("log"))
 mkdir("log",0777);
if(!file_exists($file))
 file_put_contents($file,"");
$allowTime = 120;//防刷新时间
$allowNum=10;//防刷新次数
$uri=$_SERVER['REQUEST_URI'];
$checkip=md5($ip);
$checkuri=md5($uri);
$yesno=true;
$ipdate =@file($file);
foreach($ipdate as $k=>$v) {
 $iptem=substr($v,0,32);
 $uritem=substr($ v,32,32);
 $timetem=substr($v,64,10);
 $numtem=substr($v,74);
 if($time-$timetem  if($iptem!=$checkip)
   $str.=$v;
  else {
   $yesno=false;
   if($uritem!=$checkuri)
    $str.=$iptem.$checkuri.$time."1rn";
   elseif($numtem    $str.=$iptem.$uritem.$timetem.($numtem 1 )."rn";
   else {
    if(!file_exists($fileforbid)) {
     $addforbidarr=array($ip."rn",time()."rn",1);
     file_put_contents($fileforbid,$addforbidarr);
    }
    file_put_contents("log/forbided_ip.log",$ip."--".date("Y-m-d H:i:s",time( ))."--".$uri."rn",FILE_APPEND);
    $timepass=$timetem $allowTime-$time;
    die("警告:"."
"."抱歉,由于刷新过于频繁,请等待“.$timepass.”秒继续!”);
   }
  }
 }
}
if($yesno ) $str.=$checkip.$checkuri.$time."1rn";
file_put_contents($file,$str);
?>
相关标签:
来源:php.cn
本站声明
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn
热门教程
更多>
最新下载
更多>
网站特效
网站源码
网站素材
前端模板