Пример #1
0
 /**
  * Reformat possible nun-full IPv4 address for search
  *
  *	e.g. 10.10.10 -> 10.10.10.0 - 10.10.10.255
  *
  * @access public
  * @param mixed $address
  * @return array high/low decimal address
  */
 public function reformat_IPv4_for_search($address)
 {
     # remove % sign if present
     $address = str_replace("%", "", $address);
     # we need Addresses class
     $Addresses = new Addresses($this->Database);
     # if subnet is provided we have all data
     if (strpos($address, "/") > 0) {
         # Initialize PEAR NET object
         $this->initialize_pear_net_IPv4();
         $net = $this->Net_IPv4->parseAddress($ip);
         $result['low'] = $Addresses->transform_to_decimal($net->network);
         $result['high'] = $Addresses->transform_to_decimal($net->broadcast);
     } else {
         # if subnet is not provided maye wildcard is, so explode it to array
         $address = array_filter(explode(".", $address));
         # 4 pieces is ok, host
         if (sizeof($address) == 4) {
             $result['low'] = $result['high'] = $Addresses->transform_to_decimal(implode(".", $address));
         } elseif (sizeof($address) == 3) {
             $result['low'] = $Addresses->transform_to_decimal(implode(".", array_merge($address, array(0))));
             $result['high'] = $Addresses->transform_to_decimal(implode(".", array_merge($address, array(255))));
         } elseif (sizeof($address) == 2) {
             $result['low'] = $Addresses->transform_to_decimal(implode(".", array_merge($address, array(0, 0))));
             $result['high'] = $Addresses->transform_to_decimal(implode(".", array_merge($address, array(255, 255))));
         } elseif (sizeof($address) == 1) {
             $result['low'] = $Addresses->transform_to_decimal(implode(".", array_merge($address, array(0, 0, 0))));
             $result['high'] = $Addresses->transform_to_decimal(implode(".", array_merge($address, array(255, 255, 255))));
         } else {
             $result['low'] = implode(".", $address);
             $result['high'] = implode(".", $address);
         }
     }
     # return result array low/high
     return $result;
 }