当前位置: 首页>>代码示例>>PHP>>正文


PHP IPAddress::getVersion方法代码示例

本文整理汇总了PHP中IPAddress::getVersion方法的典型用法代码示例。如果您正苦于以下问题:PHP IPAddress::getVersion方法的具体用法?PHP IPAddress::getVersion怎么用?PHP IPAddress::getVersion使用的例子?那么恭喜您, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在IPAddress的用法示例。


在下文中一共展示了IPAddress::getVersion方法的2个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的PHP代码示例。

示例1: showForm

 function showForm($ID, $options = array())
 {
     global $CFG_GLPI, $DB;
     if (!self::canView()) {
         return false;
     }
     $this->check($ID, READ);
     $recursiveItems = $this->recursivelyGetItems();
     if (count($recursiveItems) > 0) {
         $lastItem = $recursiveItems[count($recursiveItems) - 1];
         $lastItem_entities_id = $lastItem->getField('entities_id');
     } else {
         $lastItem_entities_id = $_SESSION['glpiactive_entity'];
     }
     $options['entities_id'] = $lastItem_entities_id;
     $this->showFormHeader($options);
     $options['canedit'] = false;
     $options['candel'] = false;
     $number_errors = 0;
     foreach (self::getMotives() as $key => $name) {
         if ($this->fields[$key] == 1) {
             $number_errors++;
         }
     }
     $motives = self::getMotives();
     $interface_cell = "td";
     $address_cell = "td";
     $network_cell = "td";
     $gateway_cell = "td";
     $address = new IPAddress();
     $netmask = new IPNetmask();
     $number_real_errors = 0;
     if (!$address->setAddressFromString($this->fields['ip']) || !$netmask->setNetmaskFromString($this->fields['netmask'], $address->getVersion())) {
         unset($address);
         unset($netmask);
     } else {
         $network = new IPNetwork();
         $params = array("address" => $address, "netmask" => $netmask);
         if (isset($this->fields["address"])) {
             $params["exclude IDs"] = $this->fields["address"];
         }
         if (isset($this->fields["entities_id"])) {
             $entity = $this->fields["entities_id"];
         } else {
             $entity = -1;
         }
         $networkports_ids = IPNetwork::searchNetworks("equals", $params, $entity, false);
         if (count($networkports_ids) == 0) {
             unset($network);
         } else {
             $network->getFromDB($networkports_ids[0]);
         }
     }
     if ($this->fields['unknown_interface_type'] == 1) {
         $options['canedit'] = true;
         $number_real_errors++;
         $interface_cell = "th";
         echo "<tr class='tab_bg_1'><th>" . $motives['unknown_interface_type'] . "</th>\n" . "<td>" . __('Transform this network port to');
         echo "</td><td colspan=2>";
         Dropdown::showItemTypes('transform_to', NetworkPort::getNetworkPortInstantiations(), array('value' => "NetworkPortEthernet"));
         echo "</td></tr>\n";
     }
     if ($this->fields['invalid_network'] == 1) {
         $number_real_errors++;
         $network_cell = "th";
         $address_cell = "th";
         echo "<tr class='tab_bg_1'><th>" . $motives['invalid_network'] . "</th>\n<td colspan=3>";
         if (isset($network)) {
             printf(__('Network port information conflicting with %s'), $network->getLink());
         } else {
             if (!isset($address) || !isset($netmask)) {
                 _e('Invalid address or netmask');
             } else {
                 _e('No conflicting network');
             }
             echo "&nbsp;<a href='" . Toolbox::getItemTypeFormURL('IPNetwork') . "'>" . __('you may have to add a network') . "</a>";
         }
         echo "</td></tr>\n";
     }
     if ($this->fields['invalid_gateway'] == 1) {
         $number_real_errors++;
         $gateway_cell = "th";
         echo "<tr class='tab_bg_1'><th>" . $motives['invalid_gateway'] . "</th>\n<td colspan=3>";
         if (isset($network)) {
             printf(__('Append a correct gateway to the network %s'), $network->getLink());
         } else {
             printf(__('%1$s: %2$s'), __('Unknown network'), "<a href='" . Toolbox::getItemTypeFormURL('IPNetwork') . "'>" . __('Add a network') . "\n                    </a>");
         }
         echo "</td></tr>\n";
     }
     if ($this->fields['invalid_address'] == 1) {
         $number_real_errors++;
         $address_cell = "th";
         echo "<tr class='tab_bg_1'><th>" . $motives['invalid_address'] . "</th>\n<td colspan=3>";
         $networkPort = new NetworkPort();
         if ($networkPort->getFromDB($this->getID())) {
             $number_real_errors++;
             echo "<a href='" . $networkPort->getLinkURL() . "'>" . __('Add a correct IP to the network port') . "</a>";
         } else {
             _e('Unknown network port');
//.........这里部分代码省略.........
开发者ID:paisdelconocimiento,项目名称:glpi-smartcities,代码行数:101,代码来源:networkportmigration.class.php

示例2: searchNetworks

 /**
  * Search networks relative to a given network
  *
  * @param $relation        type of relation ("is contained by", "equals" or "contains")
  *                         regarding the networks given as parameter
  * @param $condition array of elements to select the good arrays (see Parameters above)
  *    - fields : the fields of the network we wish to retrieve (single field or array of
  *               fields). This parameter will impact the result of the function
  *    - address (see \ref parameterType) : the address for the query
  *    - netmask (see \ref parameterType) : the netmask for the query
  *    - exclude IDs : the IDs to exclude from the query (for instance, $this->getID())
  *    - where : filters to add to the SQL request
  *
  * @param $entityID        the entity on which the selection should occur (-1 => the current active
  *                         entity) (default -1)
  * @param $recursive       set to false to only search in current entity, otherwise, all visible
  *                         entities will be search (true by default)
  * @param $version         version of IP to look (only use when using arrays or string as input for
  *                         address or netmask n(default 0)
  *
  * @return array of networks found. If we want request several field, the return value will be
  *                 an array of array
  *
  * \warning The order of the elements inside the result are ordered from the nearest one to the
  *          further. (ie. 0.0.0.0 is the further of whatever network if you lool for ones that
  *          contains the current network.
  **/
 static function searchNetworks($relation, $condition, $entityID = -1, $recursive = true, $version = 0)
 {
     global $DB;
     if (empty($relation)) {
         return false;
     }
     if (empty($condition["fields"])) {
         $fields = 'id';
     } else {
         $fields = $condition["fields"];
     }
     if (!is_array($fields)) {
         $fields = array($fields);
     }
     $FIELDS = "`" . implode("`, `", $fields) . "`";
     $startIndex = $version == 4 ? 3 : 1;
     $addressDB = array('address_0', 'address_1', 'address_2', 'address_3');
     $netmaskDB = array('netmask_0', 'netmask_1', 'netmask_2', 'netmask_3');
     $WHERE = "";
     if (isset($condition["address"]) && isset($condition["netmask"])) {
         $addressPa = new IPAddress($condition["address"]);
         // Check version equality ...
         if ($version != $addressPa->getVersion()) {
             if ($version != 0) {
                 return false;
             }
             $version = $addressPa->getVersion();
         }
         $netmaskPa = new IPNetmask($condition["netmask"], $version);
         // Get the array of the adresses
         $addressPa = $addressPa->getBinary();
         $netmaskPa = $netmaskPa->getBinary();
         // Check the binary is valid
         if (!is_array($addressPa) || count($addressPa) != 4) {
             return false;
         }
         if (!is_array($netmaskPa) || count($netmaskPa) != 4) {
             return false;
         }
         $startIndex = $version == 4 ? 3 : 0;
         if ($relation == "equals") {
             for ($i = $startIndex; $i < 4; ++$i) {
                 $WHERE .= " AND (`" . $addressDB[$i] . "` & '" . $netmaskPa[$i] . "')=\n                               ('" . $addressPa[$i] . "' & '" . $netmaskPa[$i] . "')\n                           AND ('" . $netmaskPa[$i] . "' = `" . $netmaskDB[$i] . "`)";
             }
         } else {
             for ($i = $startIndex; $i < 4; ++$i) {
                 if ($relation == "is contained by") {
                     $globalNetmask = "'" . $netmaskPa[$i] . "'";
                 } else {
                     $globalNetmask = "`" . $netmaskDB[$i] . "`";
                 }
                 $WHERE .= " AND (`" . $addressDB[$i] . "` & {$globalNetmask})=\n                               ('" . $addressPa[$i] . "' & {$globalNetmask})\n                           AND ('" . $netmaskPa[$i] . "' & `" . $netmaskDB[$i] . "`)={$globalNetmask}";
             }
         }
     }
     $WHERE = "`version`='{$version}' {$WHERE}";
     if ($entityID < 0) {
         $entityID = $_SESSION['glpiactive_entity'];
     }
     $entitiesID = array();
     switch ($relation) {
         case "is contained by":
             $ORDER_ORIENTATION = 'ASC';
             if ($recursive) {
                 $entitiesID = getSonsOf('glpi_entities', $entityID);
             }
             break;
         case "contains":
             $ORDER_ORIENTATION = 'DESC';
             if ($recursive) {
                 $entitiesID = getAncestorsOf('glpi_entities', $entityID);
             }
             break;
//.........这里部分代码省略.........
开发者ID:kipman,项目名称:glpi,代码行数:101,代码来源:ipnetwork.class.php


注:本文中的IPAddress::getVersion方法示例由纯净天空整理自Github/MSDocs等开源代码及文档管理平台,相关代码片段筛选自各路编程大神贡献的开源项目,源码版权归原作者所有,传播和使用请参考对应项目的License;未经允许,请勿转载。