⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 iprangerule.class.php

📁 一个用PHP编写的
💻 PHP
字号:
<?php    lt_include( PLOG_CLASS_PATH."class/data/validator/rules/rule.class.php");    define( "ERROR_RULE_IP_NOT_IN_RANGE", "error_rule_ip_not_in_range");    /**     * \ingroup Validator_Rules     *     * This rule returns true if the given IP address is within a certain range. Use the constructor     * or the setRange() method for setting the right range. The range should be given in a submask format,     * so for example 1.2.3.4 would be within the range 1.2.3.255     *     * It will set the error flag ERROR_RULE_IP_NOT_IN_RANGE error if the address is not in the     * given range.     */    class IpRangeRule extends Rule    {        var $_range;        /**         * Initializes the rule with the given range         *         * @param range The range.         */        function IpRangeRule($range)        {            $this->Rule();            $this->_range = $range;        }        /**         * Sets a different range than the one given in the constructor         *         * @param range the new range         */        function setRange($range)        {            $this->_range = $range;        }        /**         * Returns the current range being used for the calculations         *         * @return A string representing the range         */        function getRange()        {            return $this->_range;        }        /**         * Returns true if the address is within the given range or false otherwise. It will         * also set the error ERROR_RULE_IP_NOT_IN_RANGE         *         * @param value The IP address to validate         * @return True if within range or false otherwise         */        function validate($value)        {            $counter = 0;            $range   = explode("/", $this->_range);            if ($range[1] < 32)            {                $maskBits  = $range[1];                $hostBits  = 32 - $maskBits;                $hostCount = pow(2, $hostBits) - 1;                $ipStart   = ip2long($range[0]);                $ipEnd     = $ipStart + $hostCount;                if ((ip2long($value) > $ipStart) && (ip2long($value) < $ipEnd))                {                    $this->_setError(false);                    return true;                }            }            elseif (ip2long($value) == ip2long($range[0]))            {                $this->_setError(false);                return true;            }            $this->_setError(ERROR_RULE_IP_NOT_IN_RANGE);            return false;        }    }?>

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -