PHP禁止同一IP频繁访问以防止网站被防攻击或采集的代码

php中文网
发布: 2016-06-20 13:01:54
原创
2272人浏览过

php禁止同一ip频繁访问以防止网站被防攻击或采集的代码

<p><?php</p>
                    <div class="aritcle_card">
                        <a class="aritcle_card_img" href="/ai/1589">
                            <img src="https://img.php.cn/upload/ai_manual/000/000/000/175680266950579.png" alt="采风问卷">
                        </a>
                        <div class="aritcle_card_info">
                            <a href="/ai/1589">采风问卷</a>
                            <p>采风问卷是一款全新体验的调查问卷、表单、投票、评测的调研平台,新奇的交互形式,漂亮的作品,让客户眼前一亮,让创作者获得更多的回复。</p>
                            <div class="">
                                <img src="/static/images/card_xiazai.png" alt="采风问卷">
                                <span>20</span>
                            </div>
                        </div>
                        <a href="/ai/1589" class="aritcle_card_btn">
                            <span>查看详情</span>
                            <img src="/static/images/cardxiayige-3.png" alt="采风问卷">
                        </a>
                    </div>
                /* <br />*通过禁止IP频繁访问防止网站被防攻击代码<br />*design by www.scutephp.com<br />*/<br />header('Content-type: text/html; charset=utf-8');<br />$ip=$_SERVER['REMOTE_ADDR'];//获取当前访问者的ip<br />$logFilePath='./log/';//日志记录文件保存目录<br />$fileht='.htaccess2';//被禁止的ip记录文件<br />$allowtime=60;//防刷新时间<br />$allownum=5;//防刷新次数<br />$allowRefresh=120;//在允许刷新次数之后加入禁止ip文件中<br /><br />if(!file_exists($fileht)){<br />	file_put_contents($fileht,'');<br />}<br />$filehtarr=@file($fileht);<br />if(in_array($ip."\r\n",$filehtarr)){<br />	exit('警告:你的IP已经被禁止了!');<br />} <br />//加入禁止ip<br />$time=time();<br />$fileforbid=$logFilePath.'forbidchk.dat';<br />if(file_exists($fileforbid)){<br />	if($time-filemtime($fileforbid)>30){<br />		@unlink($fileforbid);<br />	}else{<br />		$fileforbidarr=@file($fileforbid);<br />		if($ip==substr($fileforbidarr[0],0,strlen($ip))){<br />			if($time-substr($fileforbidarr[1],0,strlen($time))>120){<br />				@unlink($fileforbid);<br />			}else if($fileforbidarr[2]>$allowRefresh){<br />				file_put_contents($fileht,$ip."\r\n",FILE_APPEND);<br />				@unlink($fileforbid);<br />			}else{<br />				$fileforbidarr[2]++;<br />				file_put_contents($fileforbid,$fileforbidarr);<br />			}<br />		}<br />	}<br />}<br />//防刷新<br />$str='';<br />$file=$logFilePath.'ipdate.dat';<br />if(!file_exists($logFilePath)&&!is_dir($logFilePath)){<br />	mkdir($logFilePath,0777);<br />}<br />if(!file_exists($file)){<br />	file_put_contents($file,'');<br />}<br />$uri=$_SERVER['REQUEST_URI'];//获取当前访问的网页文件地址<br />$checkip=md5($ip);<br />$checkuri=md5($uri);<br />$yesno=true;<br />$ipdate=@file($file);<br />foreach($ipdate as $k=>$v){<br />	$iptem=substr($v,0,32);<br />	$uritem=substr($v,32,32);<br />	$timetem=substr($v,64,10);<br />	$numtem=substr($v,74);<br />	if($time-$timetem<$allowtime){<br />		if($iptem!=$checkip){<br />			$str.=$v;<br />		}else{<br />			$yesno=false;<br />			if($uritem!=$checkuri){<br />				$str.=$iptem.$checkuri.$time."\r\n";<br />			}else if($numtem<$allownum){<br />				$str.=$iptem.$uritem.$timetem.($numtem+1)."\r\n";<br />			}<br />			else{<br />				if(!file_exists($fileforbid)){<br />					$addforbidarr=array($ip."\r\n",time()."\r\n",1);<br />					file_put_contents($fileforbid,$addforbidarr);<br />				}<br />				file_put_contents($logFilePath.'forbided_ip.log',$ip.'--'.date('Y-m-d H:i:s',time()).'--'.$uri."\r\n",FILE_APPEND);<br />				$timepass=$timetem+$allowtime-$time;<br />				exit('警告:不要刷新的太频繁!');<br />			}<br />		}<br />	}<br />}<br />if($yesno){<br />	$str.=$checkip.$checkuri.$time."\r\n";<br />}<br />file_put_contents($file,$str);
登录后复制


PHP速学教程(入门到精通)
PHP速学教程(入门到精通)

PHP怎么学习?PHP怎么入门?PHP在哪学?PHP怎么学才快?不用担心,这里为大家提供了PHP速学教程(入门到精通),有需要的小伙伴保存下载就能学习啦!

下载
来源:php中文网
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn
最新问题
开源免费商场系统广告
热门教程
更多>
最新下载
更多>
网站特效
网站源码
网站素材
前端模板
关于我们 免责申明 举报中心 意见反馈 讲师合作 广告合作 最新更新 English
php中文网:公益在线php培训,帮助PHP学习者快速成长!
关注服务号 技术交流群
PHP中文网订阅号
每天精选资源文章推送
PHP中文网APP
随时随地碎片化学习

Copyright 2014-2025 https://www.php.cn/ All Rights Reserved | php.cn | 湘ICP备2023035733号