Example #1
0
 static function getBaseEnd($ip, $rangelist = null)
 {
     if (isIPV6($ip)) {
         $comp = expandIP6ToArray($ip);
         $last = array_pop($comp);
         $base = self::createDottedRevedIPV6($comp[6]) . ".";
         $base .= self::createDottedRevedIPV6($comp[5]) . ".";
         $base .= self::createDottedRevedIPV6($comp[4]) . ".";
         $base .= self::createDottedRevedIPV6($comp[3]) . ".";
         $base .= self::createDottedRevedIPV6($comp[2]) . ".";
         $base .= self::createDottedRevedIPV6($comp[1]) . ".";
         $base .= self::createDottedRevedIPV6($comp[0]) . ".";
         if ($rangelist && false) {
             // FIXME: OA: The whole rangelist must be reworked
             //              I dont care it now, clients cannot declare rangelists
             foreach ($rangelist as $v) {
                 list($rb, $rf, $rl) = $v;
                 if ($rb === $base && $last >= $rf && $last <= $rl) {
                     $base = "{$rf}-{$rl}.{$base}";
                     break;
                 }
             }
         }
     } else {
         $comp = explode(".", $ip);
         $last = array_pop($comp);
         $base = "{$comp['2']}.{$comp['1']}.{$comp['0']}";
         if ($rangelist) {
             foreach ($rangelist as $v) {
                 list($rb, $rf, $rl) = $v;
                 if ($rb === $base && $last >= $rf && $last <= $rl) {
                     $base = "{$rf}-{$rl}.{$base}";
                     break;
                 }
             }
         }
     }
     return array($base, $last);
 }
Example #2
0
function validate_ipaddressV6($ip)
{
    $ip = strtoupper($ip);
    $ind = expandIP6ToArray($ip);
    $d = 0;
    $c = 0;
    if (count($ind) > 8) {
        throw new lxException('Invalid IP address: ' . $ip . ' Not enough parts', $variable);
        return 0;
    }
    foreach ($ind as $in) {
        $valid = preg_match("/[0_9ABCDEF]*/", $in);
        if (!$valid) {
            throw new lxException('Invalid IP address: ' . $ip . ' Contains not hexa characters', $variable);
            return 0;
        }
    }
    return 1;
}