[ 'model' => 'upsBasicIdentModel', 'hwrev' => 'upsAdvIdentFirmwareRevision', 'fwrev' => 'upsAdvIdentFirmwareRevision' ], # UPS 'ats' => [ 'model' => 'atsIdentModelNumber', 'hwrev' => 'atsIdentHardwareRev', 'fwrev' => 'atsIdentFirmwareRev' ], # ATS 'rPDU' => [ 'model' => 'rPDUIdentModelNumber', 'hwrev' => 'rPDUIdentHardwareRev', 'fwrev' => 'rPDUIdentFirmwareRev' ], # PDU 'rPDU2' => [ 'model' => 'rPDU2IdentModelNumber', 'hwrev' => 'rPDU2IdentHardwareRev', 'fwrev' => 'rPDU2IdentFirmwareRev' ], # PDU 'sPDU' => [ 'model' => 'sPDUIdentModelNumber', 'hwrev' => 'sPDUIdentHardwareRev', 'fwrev' => 'sPDUIdentFirmwareRev' ], # Masterswitch/AP9606 'ems' => [ 'model' => 'emsIdentProductNumber', 'hwrev' => 'emsIdentHardwareRev', 'fwrev' => 'emsIdentFirmwareRev' ], # NetBotz 200 'airIRRC' => [ 'model' => 'airIRRCUnitIdentModelNumber', 'hwrev' => 'airIRRCUnitIdentHardwareRevision', 'fwrev' => 'airIRRCUnitIdentFirmwareRevision' ], # In-Row Chiller 'airPA' => [ 'model' => 'airPAModelNumber', 'hwrev' => 'airPAHardwareRevision', 'fwrev' => 'airPAFirmwareRevision' ], # A/C //'xPDU' => [ 'model' => 'xPDUIdentModelNumber', 'hwrev' => 'xPDUIdentHardwareRev', 'fwrev' => 'xPDUIdentFirmwareAppRev' ], # PDU, moved to definitions 'xATS' => [ 'model' => 'xATSIdentModelNumber', 'hwrev' => 'xATSIdentHardwareRev', 'fwrev' => 'xATSIdentFirmwareAppRev' ], # ATS 'isx' => [ 'model' => 'isxModularPduIdentModelNumber', 'hwrev' => 'isxModularPduIdentMonitorCardHardwareRev', 'fwrev' => 'isxModularPduIdentMonitorCardFirmwareAppRev' ], # Modular PDU ]; // These oids are in APC's "experimental" tree, but there is no "real" UPS equivalent for the firmware versions. $AOSrev = snmp_get_oid($device, '.1.3.6.1.4.1.318.1.4.2.4.1.4.1', 'PowerNet-MIB'); if ($AOSrev) { $version = $AOSrev; $features = snmp_get_oid($device, '.1.3.6.1.4.1.318.1.4.2.4.1.4.2', 'PowerNet-MIB'); } foreach ($apc_oids as $oid_list) { if (!$hardware) { $model = snmp_getnext_oid($device, $oid_list['model'], 'PowerNet-MIB'); if (empty($model)) { continue; } $hardware = trim($model . ' ' . snmp_getnext_oid($device, $oid_list['hwrev'], 'PowerNet-MIB')); if (!$AOSrev) { $version = snmp_getnext_oid($device, $oid_list['fwrev'], 'PowerNet-MIB'); } break; } } } // v3.7.4 -> 3.7.4 if (strlen($version)) { $version = ltrim($version, 'v'); } if (strlen($features) && preg_match('/^v?\d/', $features)) { $features = 'App ' . ltrim($features, 'v'); } // EOF