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


PHP wfUtils::expandIPv6Address方法代码示例

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


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

示例1: isIPInRange

 /**
  * Check if the supplied IP address is within the user supplied range.
  *
  * @param string $ip
  * @return bool
  */
 public function isIPInRange($ip)
 {
     $ip_string = $this->getIPString();
     // IPv4 range
     if (strpos($ip_string, '.') !== false && strpos($ip, '.') !== false) {
         if (preg_match('/\\[\\d+\\-\\d+\\]/', $ip_string)) {
             $IPparts = explode('.', $ip);
             $whiteParts = explode('.', $ip_string);
             $mismatch = false;
             for ($i = 0; $i <= 3; $i++) {
                 if (preg_match('/^\\[(\\d+)\\-(\\d+)\\]$/', $whiteParts[$i], $m)) {
                     if ($IPparts[$i] < $m[1] || $IPparts[$i] > $m[2]) {
                         $mismatch = true;
                     }
                 } else {
                     if ($whiteParts[$i] != $IPparts[$i]) {
                         $mismatch = true;
                     }
                 }
             }
             if ($mismatch === false) {
                 return true;
                 // Is whitelisted because we did not get a mismatch
             }
         } else {
             if ($ip_string == $ip) {
                 return true;
             }
         }
         // IPv6 range
     } else {
         if (strpos($ip_string, ':') !== false && strpos($ip, ':') !== false) {
             if (preg_match('/\\[[a-f0-9]+\\-[a-f0-9]+\\]/', $ip_string)) {
                 $IPparts = explode(':', strtolower(wfUtils::expandIPv6Address($ip)));
                 $whiteParts = explode(':', strtolower(self::expandIPv6Range($ip_string)));
                 $mismatch = false;
                 for ($i = 0; $i <= 7; $i++) {
                     if (preg_match('/^\\[([a-f0-9]+)\\-([a-f0-9]+)\\]$/i', $whiteParts[$i], $m)) {
                         $ip_group = hexdec($IPparts[$i]);
                         $range_group_from = hexdec($m[1]);
                         $range_group_to = hexdec($m[2]);
                         if ($ip_group < $range_group_from || $ip_group > $range_group_to) {
                             $mismatch = true;
                             break;
                         }
                     } else {
                         if ($whiteParts[$i] != $IPparts[$i]) {
                             $mismatch = true;
                             break;
                         }
                     }
                 }
                 if ($mismatch === false) {
                     return true;
                     // Is whitelisted because we did not get a mismatch
                 }
             } else {
                 if ($ip_string == $ip) {
                     return true;
                 }
             }
         }
     }
     return false;
 }
开发者ID:TomFarrow,项目名称:wordpress-stackable,代码行数:71,代码来源:wfLog.php


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