Example #1
0
 /**
  * @param int $prefixLength
  * @return array
  * @throws \Exception
  */
 public function moveTo($prefixLength)
 {
     $maxPrefixLength = $this->ip->getMaxPrefixLength();
     if ($prefixLength <= $this->getPrefixLength() || $prefixLength > $maxPrefixLength) {
         throw new \Exception('Invalid prefix length ');
     }
     $netmask = self::prefix2netmask($prefixLength, $this->ip->getVersion());
     $networks = array();
     $subnet = clone $this;
     $subnet->setPrefixLength($prefixLength);
     while ($subnet->ip->inAddr() <= $this->getLastIP()->inAddr()) {
         $networks[] = $subnet;
         $subnet = new self($subnet->getLastIP()->next(), $netmask);
     }
     return $networks;
 }