當前位置: 首頁>>代碼示例>>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;未經允許,請勿轉載。