实现限制IP访问的PHP代码

//获取客户端ip
if (getenv("HTTP_CLIENT_IP"))
{
    $ip = getenv("HTTP_CLIENT_IP");
}
elseif (getenv("HTTP_X_FORWARDED_FOR"))
{
    $ip = getenv("HTTP_X_FORWARDED_FOR");
}
elseif (getenv("REMOTE_ADDR"))
{
    $ip = getenv("REMOTE_ADDR");
}
else
{
    $ip = "Unknow";
}
//允许访问的ip
$ALLOWED_IP = array('122.11.39.132');
$check_ip_arr = explode('.', $ip);
//ip参数拆分成数组
if (!in_array($ip, $ALLOWED_IP))
{
    $bl = false;
    foreach ($ALLOWED_IP as $val)
    {
        if (strpos($val, '*') !== false)
        {
            //发现有*号替代符
            $arr = array();
            $arr = explode('.', $val);
            $bl = true;
            //用于记录循环检测中是否有匹配成功的
            for ($i = 0; $i < 4; $i++)
            {
                if ($arr[$i] != '*')
                {
                    //不等于* 就要进来检测,如果为*符号替代符就不检查
                    if ($arr[$i] != $check_ip_arr[$i])
                    {
                        $bl = false;
                        break;
                        //终止检查本个ip 继续检查下一个ip
                    }
                }
            }
            //end for
            if ($bl)
            {
                //如果是true则终止匹配
                break;
            }
        }
    }
    //end foreach
    if (!$bl)
    {
        $return = array('status' => 2, 'msg' => '该IP无权限访问', 'data' => $ip);
        echo json_encode($return);
        exit();
    }
}

本文原创地址:https://www.edait.cn/article-917.html
版权所有 © 转载时必须以链接形式注明出处!

觉得本文对您有用,想收藏下来!方法很简单:请点击-〉

文章评论

暂无评论,来发表一个吧

发表 取消
ECSHOP插件网微信客服edait_cn