zoukankan      html  css  js  c++  java
  • 禁止单个IP或ip段访问

        //IP禁止判断接口,返回true则为找到
        function checkIp($ip, $ipbanned)
        {
            $ipbannedFlag = false;
            if (!empty($ipbanned)) {
                foreach ($ipbanned as $data) {
                    if (strpos($data, '*')) {
                        $ip_min = convert_ip("min", $data);
                        $ip_max = convert_ip("max", $data);
                        $result = ipforbidden($ip, $ip_min, $ip_max);
                        if ($result == 1) {
                            //找到
                            $ipbannedFlag = true;
                            break;
                        }
                    } else {
                        if ($ip == $data) {
                            //找到
                            $ipbannedFlag = true;
                            break;
                        }
                    }
                }
            }
            return $ipbannedFlag;
        }
    
        function convert_ip($op, $ip)
        {
            $arr_ip = explode(".", $ip);
            $arr_temp = array();
            $i = 0;
            $result = '';
            $ip_val = $op == "max" ? "255" : "1";
            foreach ($arr_ip as $key => $val) {
                $i++;
                $val = $val == "*" ? $ip_val : $val;
                $arr_temp[] = $val;
            }
            for ($i = 4 - $i; $i > 0; $i--) {
                $arr_temp[] = $ip_val;
            }
            $comma = "";
            foreach ($arr_temp as $v) {
                $result .= $comma . $v;
                $comma = ".";
            }
            return $result;
        }
    
        //判断IP是否被限并返回
        function ipforbidden($ip, $ip_from, $ip_to)
        {
            $from = strcmp(ip2long($ip), ip2long($ip_from));
            $to = strcmp(ip2long($ip), ip2long($ip_to));
            if ($from >= 0 && $to <= 0) {
                return 1;
            } else {
                return 0;
            }
        }

      
        //使用方法
            $ipbanned = [
                '61.135.165.*',
                '61.135.186.*',
                '127.0.0.1',
            ];
            $user_ip = '127.0.0.1';
            $result = checkIp($user_ip, $ipbanned);
            if ($result) exit('禁止访问');
  • 相关阅读:
    博客园侧边栏添加QQ链接
    通俗易懂的理解 Redux(知乎)
    Redux生态系统
    ReactNative环境搭建
    cordova插件开发
    java类初始化
    Cordova指令
    安卓中如何调用jni
    JNI开发的常见错误
    JNI-java native interface(java本地接口)
  • 原文地址:https://www.cnblogs.com/-mrl/p/8278002.html
Copyright © 2011-2022 走看看