PHP使用Redis对 IP 访问频次进行限制

kmwl520 建站经验 0

前言:近期我的一个API接口站点 www.yuanxiapi.cn 被恶意调用了,需要对频率进行限制,有很多种方法 但是想着直接用最简单粗暴的方法,使用Redis对 IP 访问进行限制。

宝塔 PHP需要先安装拓展 redis QQ截图20220621002003.jpg

PHP
$h3 //分钟设置
$ip$_SERVER'REMOTE_ADDR'
$redis  new Redis
$redisconnect'127.0.0.1' 6379 //连接 Redis
if $redisexists$ip//第一次访问$redisset$ip1$h60 // 设置N分钟过期时间并设置初始值1
else//已经记录过IPif $redisget$ip30 //判断IP有没有到达拉黑阈值$redisincr$ip //次数加一else   exit"您的请求过于频繁,{$h}分钟内请求已达到:"$redisget$ip"次"//效果:3分钟内某IP访问超过30次则限制

附言:对IP进行限制,治标不治本,因为还是会有人伪造IP进行恶意访问,除非能精准的获取真实IP(但是很难,目前小白的我还没有发现php即使在伪造IP的各种情况下,还能完美无缺获取真实IP的方法)。


求一段PHP限制IP及IP段访问的代码,拜托了。。

正确代码function check_ip(){$ALLOWED_IP=array(192.168.2.*,127.0.0.1,192.168.2.49);$IP=getIP();$check_ip_arr= explode(.,$IP);//要检测的ip拆分成数组#限制IPif(!in_array($IP,$ALLOWED_IP)) {foreach ($ALLOWED_IP as $val){if(strpos($val,*)!==false){//发现有*号替代符$arr=array();//$arr=explode(., $val);$bl=true;//用于记录循环检测中是否有匹配成功的for($i=0;$i<4;$i++){if($arr[$i]!=*){//不等于* 就要进来检测,如果为*符号替代符就不检查if($arr[$i]!=$check_ip_arr[$i]){$bl=false;break;//终止检查本个ip 继续检查下一个ip

php如何限制每人每天访问次数php限制登录次数

如何限制用户一天只访问一次php页面

这个很简单:

如果您有登录系统,您必须先登录才能访问它。添加一个新的登录表记录登录时间,只需查找判断即可,或者访问时在redis中记录uid时间。

如果不登录,就用IP作为uid时间记录来redis。每次进入页面都可以查看redis中是否有该用户的访问记录。

这种代码很难提供,而且很基础。。建议加强基础

Wordpress是干什么?主要用途,什么?

WordPress提供的功能包括:

1.文章发布、分类、归档、收藏,统计阅读次数。

2.提供文章、评论、分类等多种形式的RSS聚合。

3.提供链接的添加、归类功能。

4.支持评论的管理,废品信息过滤功能。

5.支持多样式CSS和PHP程序的直接编辑、修改。

6.在Blog系统外,方便的添加所需页面。

7.通过对各种参数进行设置,使Blog更具个性化。

8.在某些插件的支持下实现静态html页面生成(如WP-SUPER-CACHE)。

9.通过选择不同主题,方便地改变页面的显示效果。

10.通过添加插件,可提供多种特殊的功能。

11.支持Trackback和pingback。

12.支持针对某些其它blog软件、平台的导入功能。

13.支持会员注册登录,后台管理功能。WordPress是使用PHP语言开发的博客平台,用户可以在支持PHP和MySQL数据库的服务器上架设属于自己的网站。也可以把WordPress当作一个内容管理系统(CMS)来使用。WordPress是一款个人博客系统,并逐步演化成一款内容管理系统软件,它是使用PHP语言和MySQL数据库开发的。用户可以在支持PHP和MySQL数据库的服务器上使用自己的博客。

限制ip地址段访问的php代码

<?php $userip = $_SERVER[REMOTE_ADDR]; //获得用户ip $userips = explode(., $userip);//把获得的ip切开成数组 if(($userips[0]<=195 && $userips[0]>=195)&&($userips[1]<=163 && $userips[1]>=163)&&($userips[2]<=079 && $userips[2]>=072)&&($userips[3]<=255 && $userips[3]>=000)){echo 您的ip不符!; exit; }else{echo 通过验证!;}?>我的思路就是这样的获得用户的IP 用.分割成数组再将 限制IP断 分别用.分割成数组然后判断用户IP是否在这个IP断内(分别判断四个元素是否在这个范围里)……下面是蓝色理想里找到的一个供你参考——————————————————<?php class IP{ //获取客户IP地址 function getIpAdr(&$ ip){ $ ip1=getenv(HTTP_X_FORWARDED_FOR); $ ip2=getenv(HTTP_CLIENT_IP); $ ip3=getenv(REMOTE_ADDR); if($ ip1&&$ ip1!=unknow) $ ip=$ ip1; else if($ ip2&&$ ip2!=unknow) $ ip=$ ip2; else if($ ip3&&$ ip3!=unknow) $ ip=$ ip3; else $ ip=127.0.0.1; } } function get_netip($ myip){ //只留客户IP地址的前三位 $ temp=explode(.,$ myip); $ netip.=$ temp[0]; $ netip.=.; $ netip.=$ temp[1]; $ netip.=.; $ netip.=$ temp[2]; return $ netip; } $ filename=; //定义操作文件 $ ip_lib=file($ filename); //读取文件数据到数组中 $ allow=0; $ IP=new IP; $ thisip=; $ IP->getIpAdr(&$ thisip); $ thenetip=get_netip($ thisip); for($ i=0;$ i<count($ ip_lib);$ i++){ if(ereg($ thenetip,$ ip_lib[$ i])){ $ allow=1; break; } } if ($ allow==1) { echo 验证通过; } else { echo <script>=;</script>; } ?>

 性感美胸  人体高清大图  白胡椒粉的作用  世界最美女星  女生伤感头像 
标签关键词:

免责声明

本站提供的一切软件、教程和内容信息仅限用于学习和研究目的;不得将上述内容用于商业或者非法用途,否则,一切后果请用户自负。本站信息来自网络,版权争议与本站无关。您必须在下载后的24个小时之内,从您的电脑或手机中彻底删除上述内容。如果您喜欢该程序,请支持正版,购买注册,得到更好的正版服务。如有侵权请邮件xm520vip@gmail.com与我们联系处理。敬请谅解!

欢迎 发表评论:

请填写验证码