Ejemplo n.º 1
0
 /**
  * Description
  *
  * @param
  * @param
  *
  * @return
  *
  **/
 function getPortIDfromDeviceIP($IP, $ifDescr)
 {
     global $DB;
     $pfiud = new PluginFusioninventoryUnknownDevice();
     $np = new Netport();
     $PortID = "";
     $query = "SELECT *\n                FROM `glpi_plugin_fusioninventory_networking_ifaddr`\n                WHERE `ifaddr`='" . $IP . "';";
     $result = $DB->query($query);
     if ($DB->numrows($result) == "1") {
         $data = $DB->fetch_assoc($result);
         $queryPort = "SELECT *\n                       FROM `glpi_plugin_fusioninventory_networking_ports`\n                            LEFT JOIN `glpi_networking_ports`\n                                      ON `glpi_plugin_fusioninventory_networking_ports`.`FK_networking_ports`=\n                                         `glpi_networking_ports`.`ID`\n                       WHERE (`ifdescr`='" . $ifDescr . "'\n                                OR `glpi_networking_ports`.`name`='" . $ifDescr . "')\n                             AND `glpi_networking_ports`.`on_device`='" . $data["FK_networking"] . "'\n                             AND `glpi_networking_ports`.`device_type`='2';";
         $resultPort = $DB->query($queryPort);
         $dataPort = $DB->fetch_assoc($resultPort);
         if ($DB->numrows($resultPort) == "0") {
             // Search in other devices
             $queryPort = "SELECT *\n                          FROM `glpi_networking_ports`\n                          WHERE `ifaddr`='" . $IP . "'\n                          ORDER BY `device_type`\n                          LIMIT 0,1;";
             $resultPort = $DB->query($queryPort);
             $dataPort = $DB->fetch_assoc($resultPort);
             $PortID = $dataPort["ID"];
         } else {
             $PortID = $dataPort["FK_networking_ports"];
         }
     } else {
         $query = "SELECT * FROM `glpi_plugin_fusioninventory_unknown_device`\n            WHERE `ifaddr`='" . $IP . "'\n            LIMIT 1";
         $result = $DB->query($query);
         if ($DB->numrows($result) == "1") {
             $data = $DB->fetch_assoc($result);
             // Search port and add if required
             $query1 = "SELECT *\n                FROM `glpi_networking_ports`\n                WHERE `device_type`='" . PLUGIN_FUSIONINVENTORY_MAC_UNKNOWN . "'\n                   AND `on_device`='" . $data['ID'] . "'\n                   AND `name`='" . $ifDescr . "'\n                LIMIT 1";
             $result1 = $DB->query($query1);
             if ($DB->numrows($result1) == "1") {
                 $data1 = $DB->fetch_assoc($result1);
                 $PortID = $data1['ID'];
             } else {
                 // Add port
                 $input = array();
                 $input['on_device'] = $data['ID'];
                 $input['device_type'] = PLUGIN_FUSIONINVENTORY_MAC_UNKNOWN;
                 $input['ifaddr'] = $IP;
                 $input['name'] = $ifDescr;
                 $PortID = $np->add($input);
             }
             return $PortID;
         }
         $query = "SELECT *\n             FROM `glpi_networking_ports`\n             WHERE `device_type`='" . PLUGIN_FUSIONINVENTORY_MAC_UNKNOWN . "'\n               AND`ifaddr`='" . $IP . "'\n             LIMIT 1";
         $result = $DB->query($query);
         if ($DB->numrows($result) == "1") {
             $data = $DB->fetch_assoc($result);
             if ($pfiud->convertUnknownToUnknownNetwork($data['on_device'])) {
                 // Add port
                 $input = array();
                 $input['on_device'] = $data['on_device'];
                 $input['device_type'] = PLUGIN_FUSIONINVENTORY_MAC_UNKNOWN;
                 $input['ifaddr'] = $IP;
                 $input['name'] = $ifDescr;
                 $PortID = $np->add($input);
                 return $PortID;
             }
         }
         // Add unknown device
         $input = array();
         $input['ifaddr'] = $IP;
         $unkonwn_id = $pfiud->add($input);
         // Add port
         $input = array();
         $input['on_device'] = $unkonwn_id;
         $input['device_type'] = PLUGIN_FUSIONINVENTORY_MAC_UNKNOWN;
         $input['ifaddr'] = $IP;
         $input['name'] = $ifDescr;
         $PortID = $np->add($input);
         return $PortID;
     }
     return $PortID;
 }