PHP程序防止ddos,dns,集群服务器攻击
[代码] ddos,dns,集群服务器攻击QQ33258影子可以测试满意担保
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 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<$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 |
?> |

浙公网安备 33010602011771号