* @copyright 2016 phpSysInfo * @license http://opensource.org/licenses/gpl-2.0.php GNU General Public License version 2, or (at your option) any later version * @version Release: 3.0 * @link http://phpsysinfo.sourceforge.net */ class QTSsnmp extends Sensors { /** * get temperature information * * @return void */ private function _temperature() { if (!defined('PSI_EMU_PORT')) { $address = '127.0.0.1'; } else { $address = PSI_EMU_HOSTNAME; } if (CommonFunctions::executeProgram("snmpwalk", "-Ona -c public -v 1 -t ".PSI_SNMP_TIMEOUT_INT." -r ".PSI_SNMP_RETRY_INT." ".$address." .1.3.6.1.4.1.24681.1.2.5.0", $buffer, PSI_DEBUG) && preg_match('/^[\.\d]+ = STRING:\s\"?(\d+)\sC/', $buffer, $data)) { $dev = new SensorDevice(); $dev->setName("CPU"); $dev->setValue($data[1]); $this->mbinfo->setMbTemp($dev); } if (CommonFunctions::executeProgram("snmpwalk", "-Ona -c public -v 1 -t ".PSI_SNMP_TIMEOUT_INT." -r ".PSI_SNMP_RETRY_INT." ".$address." .1.3.6.1.4.1.24681.1.2.6.0", $buffer, PSI_DEBUG) && preg_match('/^[\.\d]+ = STRING:\s\"?(\d+)\sC/', $buffer, $data)) { $dev = new SensorDevice(); $dev->setName("System"); $dev->setValue($data[1]); $this->mbinfo->setMbTemp($dev); } if (CommonFunctions::executeProgram("snmpwalk", "-Ona -c public -v 1 -t ".PSI_SNMP_TIMEOUT_INT." -r ".PSI_SNMP_RETRY_INT." ".$address." .1.3.6.1.4.1.24681.1.2.11.1.3", $buffer, PSI_DEBUG)) { $lines = preg_split('/\r?\n/', $buffer); foreach ($lines as $line) if (preg_match('/^[\.\d]+\.(\d+) = STRING:\s\"?(\d+)\sC/', $line, $data)) { $dev = new SensorDevice(); $dev->setName("HDD ".$data[1]); $dev->setValue($data[2]); $this->mbinfo->setMbTemp($dev); } } } /** * get fan information * * @return void */ private function _fans() { if (!defined('PSI_EMU_PORT')) { $address = '127.0.0.1'; } else { $address = PSI_EMU_HOSTNAME; } if (CommonFunctions::executeProgram("snmpwalk", "-Ona -c public -v 1 -t ".PSI_SNMP_TIMEOUT_INT." -r ".PSI_SNMP_RETRY_INT." ".$address." .1.3.6.1.4.1.24681.1.2.15.1.3", $buffer, PSI_DEBUG)) { $lines = preg_split('/\r?\n/', $buffer); foreach ($lines as $line) if (preg_match('/^[\.\d]+\.(\d+) = STRING:\s\"?(\d+)\sRPM/', $line, $data)) { $dev = new SensorDevice(); $dev->setName("Fan ".$data[1]); $dev->setValue($data[2]); $this->mbinfo->setMbFan($dev); } } } /** * get the information * * @see PSI_Interface_Sensor::build() * * @return void */ public function build() { if ((PSI_OS == 'Linux') && (!defined('PSI_EMU_HOSTNAME') || defined('PSI_EMU_PORT'))) { $this->_temperature(); $this->_fans(); } } }