note 68759 added to function.snmprealwalk

From: Date: Wed, 09 Aug 2006 19:10:51 +0000
Subject: note 68759 added to function.snmprealwalk
Groups: php.notes 
Request: Send a blank email to php-notes+get-115736@lists.php.net to get a copy of this message
Some improvements based on testing a lot of OIDs on a lot of devices. <?php function snmptable($host, $community, $oid) { // TODO: get original state and restore at bottom snmp_set_oid_numeric_print(TRUE); snmp_set_quick_print(TRUE); snmp_set_enum_print(TRUE); $retval = array(); $raw = snmprealwalk($host, $community, $oid); if (count($raw) == 0) return ($retval); // no data $prefix_length = 0; $largest = 0; foreach ($raw as $key => $value) { if ($prefix_length == 0) { // don't just use $oid's length since it may be non-numeric $prefix_elements = count(explode('.',$oid)); $tmp = '.' . strtok($key, '.'); while ($prefix_elements > 1) { $tmp .= '.' . strtok('.'); $prefix_elements--; } $tmp .= '.'; $prefix_length = strlen($tmp); } $key = substr($key, $prefix_length); $index = explode('.', $key, 2); isset($retval[$index[1]]) or $retval[$index[1]] = array(); if ($largest < $index[0]) $largest = $index[0]; $retval[$index[1]][$index[0]] = $value; } if (count($retval) == 0) return ($retval); // no data // fill in holes and blanks the agent may "give" you foreach($retval as $k => $x) { for ($i = 1; $i <= $largest; $i++) { if (! isset($retval[$k][$i])) { $retval[$k][$i] = ''; } } ksort($retval[$k]); } return($retval); } ?> ---- Server IP: 64.71.164.2 Probable Submitter: 209.163.178.60 ---- X-Spam-Status: No, hits=3.1 required=5.0 tests=DATE_MISSING,FROM_NO_LOWER autolearn=no version=2.64 ---- Manual Page -- http://www.php.net/manual/en/function.snmprealwalk.php Edit -- https://master.php.net/note/edit/68759 Del: integrated -- https://master.php.net/note/delete/68759/integrated Del: useless -- https://master.php.net/note/delete/68759/useless Del: bad code -- https://master.php.net/note/delete/68759/bad+code Del: spam -- https://master.php.net/note/delete/68759/spam Del: non-english -- https://master.php.net/note/delete/68759/non-english Del: in docs -- https://master.php.net/note/delete/68759/in+docs Del: other reasons-- https://master.php.net/note/delete/68759 Reject -- https://master.php.net/note/reject/68759 Search -- https://master.php.net/manage/user-notes.php

« previous php.notes (#115736) next »