当前位置:首页 > PHP教程 >

PHP结合Redi获取用户访问IP

发布时间:2019-06-06 16:37:41 作者:佚名 阅读:(11)

最近网站被人一直在刷,只好获取到访问的IP进行封禁,接下来吾爱编程为大家介绍一下PHP获取用户IP保存到redis,有需要的小伙伴可以参考一下:

第一步:获取IP

//获取访问IP
        $ip =get_real_ip();
        $ip = ip2long($ip);
        $time = time();
        $redis = RedisVote::newRedis();
        $client = $_SERVER['HTTP_USER_AGENT'];
        if($redis && stripos($client,'spider')=== false) {
            $d = date('H', $time);
            #将列表分成4分
            $h = (int)(date('H', $time));
            $ipKey = 'itbiancheng_ip_hour_' . $d;
            $tempIp = $ip;
            $redis->lpush($ipKey, $tempIp, CACHETIME);
          
        }

第二步:获取到的IP,写入指定的文件里面以供使用

$redis = RedisVote::newRedis();
        if($redis == false){
            exit();
        }
        //$time = time();
        //获取前一个小时
        $d = date('H', strtotime("-1 hour"));
        $ipKey = 'itbiancheng_ip_hour_' . $d;
        //获取key
        $list = array();
        $list = $redis->lranges($ipKey,0, -1);
        $ip_arr = array_count_values($list);
        //return print_r($ip_arr);
        if($ip_arr){
            file_put_contents(ROOT."/ip/iplist.txt",'');
            foreach ($ip_arr as $keys=>$val) {
                if ($val > 5000) {
                    file_put_contents(ROOT."/ip/iplist.txt", long2ip($keys).PHP_EOL, FILE_APPEND);
                }
            }

            $redis->delete($ipKey,'');
        }
redis封装类


欢迎分享转载→ PHP结合Redi获取用户访问IP

© 2015-2019 - 吾爱编程网 版权所有 苏ICP备18033726号-1关于我们 - 网站声明 - 联系我们