diff --git a/includes/polling/system.inc.php b/includes/polling/system.inc.php index ffdef2b25..7db835c49 100755 --- a/includes/polling/system.inc.php +++ b/includes/polling/system.inc.php @@ -14,7 +14,8 @@ unset($poll_device); $snmpdata = snmp_get_multi($device, "sysUpTime.0 sysLocation.0 sysContact.0 sysName.0", "-OQUs", "SNMPv2-MIB"); - foreach (array_keys($snmpdata[0]) as $key) { $poll_device[$key] = $snmpdata[0][$key]; } + print_r($snmpdata); + $poll_device = $snmpdata[0]; $poll_device['sysDescr'] = snmp_get($device, "sysDescr.0", "-Oqv", "SNMPv2-MIB"); $poll_device['sysObjectID'] = snmp_get($device, "sysObjectID.0", "-Oqvn", "SNMPv2-MIB"); diff --git a/includes/snmp.inc.php b/includes/snmp.inc.php index bc54d3a85..84373b2d2 100644 --- a/includes/snmp.inc.php +++ b/includes/snmp.inc.php @@ -53,7 +53,13 @@ function snmp_get_multi($device, $oids, $options = "-OQUs", $mib = NULL, $mibdir $runtime_stats['snmpget']++; foreach (explode("\n", $data) as $entry) { - $array[$index][$oid] = $value; + list($oid,$value) = explode("=", $entry); + $oid = trim($oid); $value = trim($value); + list($oid, $index) = explode(".", $oid); + if (!strstr($value, "at this OID") && isset($oid) && isset($index)) + { + $array[$index][$oid] = $value; + } } return $array;