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


PHP Net_IPv6::SplitV64方法代码示例

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


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

示例1: checkIPv6

 /**
  * Checks an IPv6 adress
  *
  * Checks if the given IP is IPv6-compatible
  *
  * @param String $ip a valid IPv6-adress
  *
  * @return Boolean true if $ip is an IPv6 adress
  * @access public
  * @static
  */
 public static function checkIPv6($ip)
 {
     $elements = Net_IPv6::separate($ip);
     $ip = $elements[0];
     if ('' != $elements[1] && (!is_numeric($elements[1]) || 0 > $elements || 128 < $elements[1])) {
         return false;
     }
     $ipPart = Net_IPv6::SplitV64($ip);
     $count = 0;
     if (!empty($ipPart[0])) {
         $ipv6 = explode(':', $ipPart[0]);
         foreach ($ipv6 as $element) {
             // made a validate precheck
             if (!preg_match('/[0-9a-fA-F]*/', $element)) {
                 return false;
             }
         }
         for ($i = 0; $i < count($ipv6); $i++) {
             if (4 < strlen($ipv6[$i])) {
                 return false;
             }
             $dec = hexdec($ipv6[$i]);
             $hex = strtoupper(preg_replace("/^[0]{1,3}(.*[0-9a-fA-F])\$/", "\\1", $ipv6[$i]));
             if ($ipv6[$i] >= 0 && $dec <= 65535 && $hex == strtoupper(dechex($dec))) {
                 $count++;
             }
         }
         if (8 == $count) {
             return true;
         } else {
             if (6 == $count and !empty($ipPart[1])) {
                 $ipv4 = explode('.', $ipPart[1]);
                 $count = 0;
                 for ($i = 0; $i < count($ipv4); $i++) {
                     if ($ipv4[$i] >= 0 && (int) $ipv4[$i] <= 255 && preg_match("/^\\d{1,3}\$/", $ipv4[$i])) {
                         $count++;
                     }
                 }
                 if (4 == $count) {
                     return true;
                 }
             } else {
                 return false;
             }
         }
     } else {
         return false;
     }
 }
开发者ID:martinsv,项目名称:phpipam,代码行数:60,代码来源:IPv6.php

示例2: checkIPv6

 /**
  * Checks an IPv6 adress
  *
  * Checks if the given IP is IPv6-compatible
  *
  * @param String $ip a valid IPv6-adress
  *
  * @return Boolean true if $ip is an IPv6 adress
  * @access public
  * @static
  */
 function checkIPv6($ip)
 {
     $ip = Net_IPv6::removePrefixLength($ip);
     $ip = Net_IPv6::removeNetmaskSpec($ip);
     $ipPart = Net_IPv6::SplitV64($ip);
     $count = 0;
     if (!empty($ipPart[0])) {
         $ipv6 = explode(':', $ipPart[0]);
         for ($i = 0; $i < count($ipv6); $i++) {
             if (4 < strlen($ipv6[$i])) {
                 return false;
             }
             $dec = hexdec($ipv6[$i]);
             $hex = strtoupper(preg_replace("/^[0]{1,3}(.*[0-9a-fA-F])\$/", "\\1", $ipv6[$i]));
             if ($ipv6[$i] >= 0 && $dec <= 65535 && $hex == strtoupper(dechex($dec))) {
                 $count++;
             }
         }
         if (8 == $count) {
             return true;
         } else {
             if (6 == $count and !empty($ipPart[1])) {
                 $ipv4 = explode('.', $ipPart[1]);
                 $count = 0;
                 for ($i = 0; $i < count($ipv4); $i++) {
                     if ($ipv4[$i] >= 0 && (int) $ipv4[$i] <= 255 && preg_match("/^\\d{1,3}\$/", $ipv4[$i])) {
                         $count++;
                     }
                 }
                 if (4 == $count) {
                     return true;
                 }
             } else {
                 return false;
             }
         }
     } else {
         return false;
     }
 }
开发者ID:netbuild,项目名称:phpipam,代码行数:51,代码来源:IPv6.php


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