失眠网,内容丰富有趣,生活中的好帮手!
失眠网 > PHP禁止同一IP频繁访问以防止网站被防攻击或采集的代码

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

时间:2024-06-28 17:16:47

相关推荐

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

后端开发|php教程

PHP采集, 防采集, 内容采集

后端开发-php教程

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

大漠 喊话源码,vscode编的网页别人打开,ubuntu 菱形,docker部署tomcat移植,sqlite判断表,优秀网页设计网站是,iis部署服务器,移动端全屏滑动插件,前端控件框架,爬虫紫外灯,php数据分析,烟台seo关键词优化,springboot页面访问慢,网站框架图模板,网页顶端图片,登录html静态网页模板,dede后台乱码,html页面搜索框的实现,工资管理系统源代码c,安装向导程序lzw

<?php

小区生活网源码,ubuntu的影音软件,爬虫登陆验证,榴莲php,襄阳seo推广lzw

/*

*通过禁止IP频繁访问防止网站被防攻击代码

*design by

*/

header(Content-type: text/html; charset=utf-8);

$ip=$_SERVER[REMOTE_ADDR];//获取当前访问者的ip

$logFilePath=./log/;//日志记录文件保存目录

$fileht=.htaccess2;//被禁止的ip记录文件

$allowtime=60;//防刷新时间

$allownum=5;//防刷新次数

$allowRefresh=120;//在允许刷新次数之后加入禁止ip文件中

if(!file_exists($fileht)){

file_put_contents($fileht,\);

}

$filehtarr=@file($fileht);

if(in_array($ip."\r\n",$filehtarr)){

exit(警告:你的IP已经被禁止了!);

}

//加入禁止ip

$time=time();

$fileforbid=$logFilePath.forbidchk.dat;

if(file_exists($fileforbid)){

if($time-filemtime($fileforbid)>30){

@unlink($fileforbid);

}else{

$fileforbidarr=@file($fileforbid);

if($ip==substr($fileforbidarr[0],0,strlen($ip))){

if($time-substr($fileforbidarr[1],0,strlen($time))>120){

@unlink($fileforbid);

}else if($fileforbidarr[2]>$allowRefresh){

file_put_contents($fileht,$ip."\r\n",FILE_APPEND);

@unlink($fileforbid);

}else{

$fileforbidarr[2]++;

file_put_contents($fileforbid,$fileforbidarr);

}

}

}

}

//防刷新

$str=\;

$file=$logFilePath.ipdate.dat;

if(!file_exists($logFilePath)&&!is_dir($logFilePath)){

mkdir($logFilePath,0777);

}

if(!file_exists($file)){

file_put_contents($file,\);

}

$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<$allowtime){

if($iptem!=$checkip){

$str.=$v;

}else{

$yesno=false;

if($uritem!=$checkuri){

$str.=$iptem.$checkuri.$time."\r\n";

}else if($numtem<$allownum){

$str.=$iptem.$uritem.$timetem.($numtem+1)."\r\n";

}

else{

if(!file_exists($fileforbid)){

$addforbidarr=array($ip."\r\n",time()."\r\n",1);

file_put_contents($fileforbid,$addforbidarr);

}

file_put_contents($logFilePath.forbided_ip.log,$ip.--.date(Y-m-d H:i:s,time()).--.$uri."\r\n",FILE_APPEND);

$timepass=$timetem+$allowtime-$time;

exit(警告:不要刷新的太频繁!);

}

}

}

}

if($yesno){

$str.=$checkip.$checkuri.$time."\r\n";

}

file_put_contents($file,$str);

比特币网站源码,恢复出厂ubuntu,非常小的爬虫,php $f,cdn转发 seolzw

如果觉得《PHP禁止同一IP频繁访问以防止网站被防攻击或采集的代码》对你有帮助,请点赞、收藏,并留下你的观点哦!

本内容不代表本网观点和政治立场,如有侵犯你的权益请联系我们处理。
网友评论
网友评论仅供其表达个人看法,并不表明网站立场。