当前位置: 首页>>代码示例>>PHP>>正文


PHP ITSEC_Lib::cidr_to_range方法代码示例

本文整理汇总了PHP中ITSEC_Lib::cidr_to_range方法的典型用法代码示例。如果您正苦于以下问题:PHP ITSEC_Lib::cidr_to_range方法的具体用法?PHP ITSEC_Lib::cidr_to_range怎么用?PHP ITSEC_Lib::cidr_to_range使用的例子?那么恭喜您, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在ITSEC_Lib的用法示例。


在下文中一共展示了ITSEC_Lib::cidr_to_range方法的3个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的PHP代码示例。

示例1: is_ip_whitelisted

 /**
  * Determines whether a given IP address is whitelisted
  *
  * @param  string  $ip_to_check ip to check
  * @param  array   $white_ips   ip list to compare to if not yet saved to options
  * @param  boolean $current     whether to whitelist the current ip or not (due to saving, etc)
  *
  * @return boolean               true if whitelisted or false
  */
 public static function is_ip_whitelisted($ip_to_check, $white_ips = null, $current = false)
 {
     $ip_to_check = trim($ip_to_check);
     if ($white_ips === null) {
         $global_settings = get_site_option('itsec_global');
         $white_ips = isset($global_settings['lockout_white_list']) ? $global_settings['lockout_white_list'] : array();
     }
     if ($current === true) {
         $white_ips[] = ITSEC_Lib::get_ip();
         //add current user ip to whitelist to check automatically
     }
     foreach ($white_ips as $white_ip) {
         $converted_white_ip = ITSEC_Lib::ip_wild_to_mask($white_ip);
         $check_range = ITSEC_Lib::cidr_to_range($converted_white_ip);
         $ip_range = ITSEC_Lib::cidr_to_range($ip_to_check);
         if (sizeof($check_range) === 2) {
             //range to check
             $check_min = ip2long($check_range[0]);
             $check_max = ip2long($check_range[1]);
             if (sizeof($ip_range) === 2) {
                 $ip_min = ip2long($ip_range[0]);
                 $ip_max = ip2long($ip_range[1]);
                 /**
                  * Checks cover the following scenarios:
                  *  - min-a, min-b, max-a, max-b : min-b is in a range and min-a is in b range
                  *  - min-b, min-a, max-b, max-a : max-b is in a range and max-a is in b range
                  *  - min-a, min-b, max-b, max-a : range b is encapsulated by range a
                  *  - min-b, min-a, max-a, max-b : range a is encapsulated by range b
                  */
                 if ($check_min <= $ip_min && $ip_min <= $check_max || $check_min <= $ip_max && $ip_max <= $check_max || $ip_min <= $check_min && $check_min <= $ip_max || $ip_min <= $check_max && $check_max <= $ip_max) {
                     return true;
                 }
             } else {
                 $ip = ip2long($ip_range[0]);
                 if ($check_min <= $ip && $ip <= $check_max) {
                     return true;
                 }
             }
         } else {
             //single ip to check
             $check = ip2long($check_range[0]);
             if (sizeof($ip_range) === 2) {
                 $ip_min = ip2long($ip_range[0]);
                 $ip_max = ip2long($ip_range[1]);
                 if ($ip_min <= $check && $check <= $ip_max) {
                     return true;
                 }
             } else {
                 $ip = ip2long($ip_range[0]);
                 if ($check == $ip) {
                     return true;
                 }
             }
         }
     }
     return false;
 }
开发者ID:Garth619,项目名称:wines-by-jennifer,代码行数:66,代码来源:class-itsec-ban-users.php

示例2: is_ip_whitelisted

 /**
  * Determines whether a given IP address is whitelisted
  *
  * @param  string  $ip_to_check ip to check
  * @param  array   $white_ips   ip list to compare to if not yet saved to options
  * @param  boolean $current     whether to whitelist the current ip or not (due to saving, etc)
  *
  * @return boolean               true if whitelisted or false
  */
 public static function is_ip_whitelisted($ip_to_check, $white_ips = null, $current = false)
 {
     $ip_to_check = trim($ip_to_check);
     if ($white_ips === null) {
         $global_settings = get_site_option('itsec_global');
         $white_ips = isset($global_settings['lockout_white_list']) ? $global_settings['lockout_white_list'] : array();
     }
     if ($current === true) {
         $white_ips[] = ITSEC_Lib::get_ip();
         //add current user ip to whitelist to check automatically
     }
     foreach ($white_ips as $white_ip) {
         $converted_white_ip = ITSEC_Lib::ip_wild_to_mask($white_ip);
         $check_range = ITSEC_Lib::cidr_to_range($converted_white_ip);
         $ip_range = ITSEC_Lib::cidr_to_range($ip_to_check);
         if (sizeof($check_range) === 2) {
             //range to check
             $check_min = ip2long($check_range[0]);
             $check_max = ip2long($check_range[1]);
             if (sizeof($ip_range) === 2) {
                 $ip_min = ip2long($ip_range[0]);
                 $ip_max = ip2long($ip_range[1]);
                 if ($check_min < $ip_min && $ip_min < $check_max || $check_min < $ip_max && $ip_max < $check_max) {
                     return true;
                 }
             } else {
                 $ip = ip2long($ip_range[0]);
                 if ($check_min < $ip && $ip < $check_max) {
                     return true;
                 }
             }
         } else {
             //single ip to check
             $check = ip2long($check_range[0]);
             if (sizeof($ip_range) === 2) {
                 $ip_min = ip2long($ip_range[0]);
                 $ip_max = ip2long($ip_range[1]);
                 if ($ip_min < $check && $check < $ip_max) {
                     return true;
                 }
             } else {
                 $ip = ip2long($ip_range[0]);
                 if ($check == $ip) {
                     return true;
                 }
             }
         }
     }
     return false;
 }
开发者ID:santikrass,项目名称:apache,代码行数:59,代码来源:class-itsec-ban-users.php

示例3: is_ip_whitelisted

 /**
  * Determines whether a given IP address is whitelisted.
  *
  * @since  4.0
  *
  * @access private
  *
  * @param  string $ip_to_check ip to check
  *
  * @return boolean               true if whitelisted or false
  */
 private function is_ip_whitelisted($ip_to_check, $current = false)
 {
     global $itsec_globals;
     $white_ips = $itsec_globals['settings']['lockout_white_list'];
     if (!is_array($white_ips)) {
         $white_ips = explode(PHP_EOL, $white_ips);
     }
     //Add the server IP address
     if (isset($_SERVER['LOCAL_ADDR'])) {
         $white_ips[] = $_SERVER['LOCAL_ADDR'];
     } elseif (isset($_SERVER['SERVER_ADDR'])) {
         $white_ips[] = $_SERVER['SERVER_ADDR'];
     }
     if ($current === true) {
         $white_ips[] = ITSEC_Lib::get_ip();
         //add current user ip to whitelist to check automatically
     }
     $temp = get_site_option('itsec_temp_whitelist_ip');
     if ($temp !== false) {
         if ($temp['exp'] < $itsec_globals['current_time']) {
             delete_site_option('itsec_temp_whitelist_ip');
         } else {
             $white_ips[] = filter_var($temp['ip'], FILTER_VALIDATE_IP, FILTER_FLAG_IPV4);
         }
     }
     if (is_array($white_ips) && sizeof($white_ips > 0)) {
         foreach ($white_ips as $white_ip) {
             $converted_white_ip = ITSEC_Lib::ip_wild_to_mask($white_ip);
             $check_range = ITSEC_Lib::cidr_to_range($converted_white_ip);
             $ip_range = ITSEC_Lib::cidr_to_range($ip_to_check);
             if (sizeof($check_range) === 2) {
                 //range to check
                 $check_min = ip2long($check_range[0]);
                 $check_max = ip2long($check_range[1]);
                 if (sizeof($ip_range) === 2) {
                     $ip_min = ip2long($ip_range[0]);
                     $ip_max = ip2long($ip_range[1]);
                     if ($check_min < $ip_min && $ip_min < $check_max || $check_min < $ip_max && $ip_max < $check_max) {
                         return true;
                     }
                 } else {
                     $ip = ip2long($ip_range[0]);
                     if ($check_min < $ip && $ip < $check_max) {
                         return true;
                     }
                 }
             } else {
                 //single ip to check
                 $check = ip2long($check_range[0]);
                 if (sizeof($ip_range) === 2) {
                     $ip_min = ip2long($ip_range[0]);
                     $ip_max = ip2long($ip_range[1]);
                     if ($ip_min < $check && $check < $ip_max) {
                         return true;
                     }
                 } else {
                     $ip = ip2long($ip_range[0]);
                     if ($check == $ip) {
                         return true;
                     }
                 }
             }
         }
     }
     return false;
 }
开发者ID:jacko5,项目名称:bjj,代码行数:77,代码来源:class-itsec-lockout.php


注:本文中的ITSEC_Lib::cidr_to_range方法示例由纯净天空整理自Github/MSDocs等开源代码及文档管理平台,相关代码片段筛选自各路编程大神贡献的开源项目,源码版权归原作者所有,传播和使用请参考对应项目的License;未经允许,请勿转载。