只允许部分ip访问2个页面的简单实现方法

2021-10-11 15:16:49 浏览1678次 作者: 旋风

收藏
//读取ip封禁列表,格式:127.0.0.1,127.0.0.2,127.0.0.3
$ip_str =  '127.0.0.1,127.0.0.2,127.0.0.3';
$iplist = explode(',',$ip_str);
foreach( $iplist as $klist=>$vlist){
    if(empty($vlist))
        unset( $iplist[$vlist] );
}
//获取访问者当前ip
function getlistip()
{
    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;
}
$getip_read = getlistip();
//先查看当前ip是否在封禁列表,如果在封禁列表就查询访问次数来封禁
$mapip['ipstr']     = getlistip();
$mapip['datestr']   = date('Ymd');
if(in_array($getip_read,$iplist)){
    //先查询数据库是否有这个ip,有多少次:
    $ip_read_nums = db('ipstr')->where($mapip)->count();
    if($ip_read_nums>=2){
        exit;
    }else{
        db('ipstr')->add($mapip);
    }
}


当您发现内容错误或代码bug,以及下载链接无法使用等,请点击屏幕右下角的上报错误来进行提交,我们会尽快修正。
本程序所有源码和工具完全免费,当本网站内容如果侵犯了您的权益,请联系我们,我们会尽快处理,感谢您的合作。

收藏 分享

相关文章

评论:

文明上网理性发言,请遵守 新闻评论服务协议

当前还没有评论,快来评论吧

上报错误