AI编程助手
AI免费问答

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

  2016-06-13 09:42   1688浏览 原创

代码片段(1)

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

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

php免费学习视频:立即学习
踏上前端学习之旅,开启通往精通之路!从前端基础到项目实战,循序渐进,一步一个脚印,迈向巅峰!

声明:本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn核实处理。