前言:近期我的一个API接口站点 www.yuanxiapi.cn 被恶意调用了,需要对频率进行限制,有很多种方法 但是想着直接用最简单粗暴的方法,使用Redis对 IP 访问进行限制。
宝塔 PHP需要先安装拓展 redis
$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>; } ?>
更多优质资源请微信扫码访问:盘姬资源网小程序
免责声明
本文仅代表作者观点,不代表本站立场,内容的真实性请自行甄别谨防上当受骗。
本站采用 CC BY-NC-SA 4.0 国际许可协议 进行许可,转载或引用本站文章应遵循相同协议。
-
本站提供的一切软件、教程和内容信息仅限用于学习和研究目的;不得将上述内容用于商业或者非法用途,否则,一切后果请用户自负。
-
本站信息来自网络收集整理,版权争议与本站无关。您必须在下载后的24个小时之内,从您的电脑或手机中彻底删除上述内容。如果您喜欢该程序和内容,请支持正版,购买注册,得到更好的正版服务。我们非常重视版权问题,如有侵权请邮件与我们联系处理。敬请谅解!
-
本站一律禁止以任何方式发布或转载任何违法的相关信息,访客发现请向站长举报。
-
如果有侵犯版权的资源请尽快联系站长,我们会在24h内删除有争议的资源。
站长邮箱:xm520vip@gmail.com
本文链接:https://123.775n.com/post-183.html- 上一篇: 支付宝如何申请当面付教程
- 下一篇: 利用宝塔面板设置秒级监控定时访问
发表评论