$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. 使用JOIN获取有关两个用户的信息
  2. PHP:如果用户没有按下提交按钮,则Mysql回滚多个查询(通过ajax完成)
  3. Zend数据库适配器-未捕获异常-堆栈跟踪显示用户名和密码
  4. 在MySQL数据库中存储无法访问的用户
  5. init-connectMysql对用户操作加审计功能
  6. mysql user表root 用户修改权限后出现无法访问数据库的解决方法
  7. Linux下修改MySQL初始密码、开启远程登录、授权远程登录用户
  8. 保存在Java桌面应用程序应用程序和网站上使用的个人用户设置的最
  9. 确定记录出现的次数

随机推荐

  1. WebView---Android与js交互实例
  2. Android4.2增加新键值
  3. android与js的交互
  4. android静默安装的实现(turn)
  5. Android培训班(38)
  6. flutter集成推送功能-小米推送集成
  7. Android requires compiler compliance l
  8. Android中的测试小demo
  9. 深入剖析ndk配置环境VS简易配置jni流程
  10. Android 消息提示框:五种Toast详解