Beispiel #1
0
    public function getSubnets()
    {
        $new = array();

        foreach ($this->subnets as $key=>&$s)
        {
            while ($s[0] <= $s[1])
            {
                $length = $s[1] - $s[0] + 1;
                for ($i = (32 - floor(log($length, 2))); $i <= 32; $i++)
                {
                    $test_ip = long2ip($s[0]) . '/' . $i;
                    $test = new IP($test_ip);
                    if ($test->getNetwork(true) == $s[0] && $test->getBroadcast(true) <= $s[1])
                    {
                        $s[0] = $test->getBroadcast(true) + 1;
                        $new[$test->getIP(true)] = $test->getIP() . "/" . $test->getCIDR();
                        break;
                    }
                }
            }
        }
        ksort($new);
        return $new;
    }
Beispiel #2
0
 /**
  * Returns true if the IP address of this class is in the given network.
  *
  * @param IP $network
  * @return bool
  */
 public function inNetwork(IP $network)
 {
     return (($this->getIP(true) >= $network->getNetwork(true)) && ($this->getIP(true) <= $network->getBroadcast(true)));
 }