/** * @param string $data * @return Network */ public static function parse($data) { if (strpos($data, '/')) { list($ip, $prefixLength) = explode('/', $data, 2); $ip = IP::parse($ip); $netmask = self::prefix2netmask($prefixLength, $ip->getVersion()); } elseif (strpos($data, ' ')) { list($ip, $netmask) = explode(' ', $data, 2); $ip = IP::parse($ip); $netmask = IP::parse($netmask); } else { $ip = IP::parse($data); $netmask = self::prefix2netmask($ip->getMaxPrefixLength(), $ip->getVersion()); } return new self($ip, $netmask); }
/** * @param string $data * @return Range */ public static function parse($data) { if (strpos($data, '/') || strpos($data, ' ')) { $network = Network::parse($data); $firstIP = $network->getFirstIP(); $lastIP = $network->getLastIP(); } elseif (strpos($data, '*')) { $firstIP = IP::parse(str_replace('*', '0', $data)); $lastIP = IP::parse(str_replace('*', '255', $data)); } elseif (strpos($data, '-')) { list($first, $last) = explode('-', $data, 2); $firstIP = IP::parse($first); $lastIP = IP::parse($last); } else { $firstIP = IP::parse($data); $lastIP = clone $firstIP; } return new self($firstIP, $lastIP); }