12 public function validate($aIP, $config, $context) {
19 $blk =
'(?:' . $hex .
'{1,4})';
20 $pre =
'(?:/(?:12[0-8]|1[0-1][0-9]|[1-9][0-9]|[0-9]))';
23 if (strpos($aIP,
'/') !==
false)
25 if (preg_match(
'#' . $pre .
'$#s', $aIP, $find))
27 $aIP = substr($aIP, 0, 0-strlen($find[0]));
37 if (preg_match(
'#(?<=:'.
')' . $this->ip4 .
'$#s', $aIP, $find))
39 $aIP = substr($aIP, 0, 0-strlen($find[0]));
40 $ip = explode(
'.', $find[0]);
41 $ip = array_map(
'dechex', $ip);
42 $aIP .= $ip[0] . $ip[1] .
':' . $ip[2] . $ip[3];
47 $aIP = explode(
'::', $aIP);
55 list($first, $second) = $aIP;
56 $first = explode(
':', $first);
57 $second = explode(
':', $second);
59 if (count($first) + count($second) > 8)
64 while(count($first) < 8)
66 array_push($first,
'0');
69 array_splice($first, 8 - count($second), 8, $second);
71 unset($first,$second);
75 $aIP = explode(
':', $aIP[0]);
85 foreach ($aIP as $piece)
87 if (!preg_match(
'#^[0-9a-fA-F]{4}$#s', sprintf(
'%04s', $piece)))