欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页  >  php教程

PHP程序防止ddos,dns,集群服务器攻击

程序员文章站 2022-05-31 10:02:16
...

代码片段(1)

[代码] ddos,dns,集群服务器攻击QQ33258影子可以测试满意担保

view source print? 001 002 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:"."
"
."Your IP address are forbided by some reason, IF you have any question Pls emill to shop@mydalle.com!"); 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 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"\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:"."
"
."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 ?>