$redis = new Redis();
$redis->connect('127.0.0.1', 6379); //获取客户端真实ip地址
function get_real_ip(){
static $realip;
if(isset($_SERVER)){
if(isset($_SERVER['HTTP_X_FORWARDED_FOR'])){
$realip=$_SERVER['HTTP_X_FORWARDED_FOR'];
}else if(isset($_SERVER['HTTP_CLIENT_IP'])){
$realip=$_SERVER['HTTP_CLIENT_IP'];
}else{
$realip=$_SERVER['REMOTE_ADDR'];
}
}else{
if(getenv('HTTP_X_FORWARDED_FOR')){
$realip=getenv('HTTP_X_FORWARDED_FOR');
}else if(getenv('HTTP_CLIENT_IP')){
$realip=getenv('HTTP_CLIENT_IP');
}else{
$realip=getenv('REMOTE_ADDR');
}
}
return $realip;
} //这个key记录该ip的访问次数 也可改成用户id
$key = get_client_ip(); //该Key记录访问的次数,目前是以IP为例,也可以把用户id作为key,如userid_123456 //限制次数为3次。
$limit = 3; $check = $redis->exists($key);
if($check){
$redis->incr($key);
$count = $redis->get($key);
if($count > 3){
exit('已经超出了限制次数');
}
}else{
$redis->incr($key);
//限制时间为60秒
$redis->expire($key,60);
} $count = $redis->get($key);
echo '第 '.$count.' 次请求';

最新文章

  1. JAVA内部类有关
  2. Visulalize Boost Voronoi in OpenSceneGraph
  3. Android应用开发中半透明效果实现方案
  4. LDAP与jenkins
  5. Linq分组功能
  6. HDU1013_Digital Roots【大数】【水题】
  7. JS操作JSON总结(转)
  8. 使用PowerDesigner创建数据库表图文并茂版
  9. Lambda表达式的几种使用方式
  10. [iOS]封装单例类
  11. lPC1788驱动SDRAM
  12. plsql本机不安装数据库连接远程数据库
  13. es6 Module语法
  14. 剑指Offer_编程题_13
  15. 什么是servlet?
  16. laravel 制作购物车流程
  17. 22.多线程.md
  18. codeforces 350 div2 C. Cinema map标记
  19. ngx_lua实现登录逻辑
  20. RHCSA-考前准备

热门文章

  1. 瀑布流vue-waterfall的高度设置
  2. Java并发基础05. 传统线程同步通信技术
  3. 关于C#三层架构增删改查中的“修改”问题
  4. Pointer Lock API(1/3):Pointer Lock 的总体认识
  5. Vue点击当前元素添加class 去掉兄弟的class
  6. PTA | 1014 福尔摩斯的约会 (20分)
  7. flask-模板使用
  8. C语言输出菱形
  9. 并发——深入分析ThreadLocal的实现原理
  10. vue项目中使用bpmn-流程图预览篇