php配合Redis防网站cc攻击或采集

$redis = new Redis();   
$redis->connect('127.0.0.1', 6379);  
 
//获取客户端真实ip地址 来源:这家软件站 www.zjkweiqi.cn
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);

 

posted @ 2020-10-21 14:27  heiheidou  阅读(282)  评论(0编辑  收藏  举报
http://www.zjkweiqi.cn/mdown/4818.html http://www.zjkweiqi.cn/mdown/4817.html 甘雨 http://www.zjkweiqi.cn/pcdown/93713.html http://www.zjkweiqi.cn/pcdown/1281.html http://www.zjkweiqi.cn/pcdown/2417.html http://www.zjkweiqi.cn/pcdown/93704.html http://www.zjkweiqi.cn/mdown/164.html http://www.zjkweiqi.cn/mdown/4871.html 游戏 手机软件 http://www.zjkweiqi.cn/pcdown/4646.html 甘雨 滴滴车主司机端下载