} catch (SNMPException $e) { var_dump($e->getCode()); var_dump($e->getMessage()); } $session->exceptions_enabled = SNMP::ERRNO_ANY; try { var_dump($session->get('.1.3.6.1.2.1.1.1..0')); } catch (SNMPException $e) { var_dump($e->getCode()); var_dump($e->getMessage()); } var_dump($session->close()); echo "Open normal session\n"; $session = new SNMP(SNMP::VERSION_3, $hostname, $user_noauth, $timeout, $retries); $session->valueretrieval = 67; var_dump($session->valueretrieval); echo "Closing session\n"; var_dump($session->close('')); var_dump($session->close()); var_dump($session->get('.1.3.6.1.2.1.1.1.0')); var_dump($session->close()); $session = new SNMP(SNMP::VERSION_2c, $hostname, $community, $timeout, $retries); var_dump($session->walk('.1.3.6.1.2.1.1', FALSE, '')); var_dump($session->walk('.1.3.6.1.2.1.1', FALSE, 30, '')); var_dump($session->get()); var_dump($session->getnext()); var_dump($session->set()); var_dump($session->max_oids); $session->max_oids = "ttt"; $session->max_oids = 0; var_dump($session->max_oids);
function run() { if (!extension_loaded('snmp')) { install(); exit; } if (!class_exists("SNMP")) { exit; } $session = new SNMP(SNMP::VERSION_1, "127.0.0.1:3401", "public"); $session->valueretrieval = SNMP_VALUE_PLAIN; $ifDescr = $session->walk(".1.3.6.1.4.1.3495.1.3", TRUE); $session->valueretrieval = SNMP_VALUE_LIBRARY; $ifType = $session->walk(".1.3.6.1.4.1.3495.1.3", TRUE); // 2.2.1.10.5 print_r($ifType); $result = array(); foreach ($ifDescr as $i => $n) { $result[$n] = $ifType[$i]; } print_r($result); }
function run() { if (!extension_loaded('snmp')) { install(); exit; } if (!class_exists("SNMP")) { exit; } $session = new SNMP(SNMP::VERSION_1, "127.0.0.1:3401", "public"); $session->valueretrieval = SNMP_VALUE_PLAIN; $ifDescr = $session->walk(".1.3.6.1.4.1.3495", TRUE); // $session->valueretrieval = SNMP_VALUE_LIBRARY; // $ifType = $session->walk(".1.3.6.1.4.1.3495.1.3", TRUE); // 2.2.1.10.5 print_r($ifDescr); }
function proxy_snmp() { $SNMP_WALK["PERC_CACHE"] = 0; $SNMP_WALK["REQUESTS"] = 0; $SNMP_WALK["CPU"] = 0; if (!extension_loaded('snmp')) { $SNMP_WALK["ERROR"] = true; return $SNMP_WALK; } $sock = new sockets(); $SquidSNMPPort = intval($sock->GET_INFO("SquidSNMPPort")); $SquidSNMPComunity = $sock->GET_INFO("SquidSNMPComunity"); if ($SquidSNMPPort == 0) { $SquidSNMPPort = 3401; } if ($SquidSNMPComunity == null) { $SquidSNMPComunity = "public"; } if (!class_exists("SNMP")) { $SNMP_WALK["ERROR"] = false; return $SNMP_WALK; } $session = new SNMP(SNMP::VERSION_1, "127.0.0.1:{$SquidSNMPPort}", $SquidSNMPComunity); $session->valueretrieval = SNMP_VALUE_PLAIN; $ifDescr = $session->walk(".1.3.6.1.4.1.3495.1", TRUE); $SNMP_WALK["PERC_CACHE"] = intval($ifDescr["3.2.2.1.10.5"]); $SNMP_WALK["REQUESTS"] = intval($ifDescr["3.2.1.1.0"]); $SNMP_WALK["CPU"] = intval($ifDescr["3.1.5.0"]); $SNMP_WALK["STORED_OBJECTS"] = intval($ifDescr["3.1.7.0"]); $SNMP_WALK["CLIENTS_NUMBER"] = intval($ifDescr["3.2.1.15.0"]); $SNMP_WALK["ERROR"] = false; return $SNMP_WALK; }
/** * Executes php 5.4 SNMP class walk interface * * @param string $ip * @param string $community * @param string $oid * @param bool $cache * @param bool $nowait * @return string */ protected function snmpWalkClass($ip, $community, $oid, $cache = true) { $cachetime = time() - $this->cacheTime; $cachepath = self::CACHE_PATH; $cacheFile = $cachepath . $ip . '_' . $oid; $result = ''; //cache handling if (file_exists($cacheFile)) { //cache not expired if (filemtime($cacheFile) > $cachetime and $cache == true) { $result = file_get_contents($cacheFile); } else { //cache expired - refresh data snmp_set_oid_output_format(SNMP_OID_OUTPUT_NUMERIC); $session = new SNMP(SNMP::VERSION_1, $ip, $community, $this->timeoutNative, $this->retriesNative); $raw = $session->walk($oid); $session->close(); if (!empty($raw)) { foreach ($raw as $oid => $value) { $result .= $oid . ' = ' . $value . "\n"; } } file_put_contents($cacheFile, $result); } } else { //no cached file exists snmp_set_oid_output_format(SNMP_OID_OUTPUT_NUMERIC); $session = new SNMP(SNMP::VERSION_1, $ip, $community, $this->timeoutNative, $this->retriesNative); $raw = $session->walk($oid); $session->close(); if (!empty($raw)) { foreach ($raw as $oid => $value) { $result .= $oid . ' = ' . $value . "\n"; } } file_put_contents($cacheFile, $result); } return $result; }
#$session->setSecurity($user_noauth, 'noAuthNoPriv', '', '', '', '', '', ''); var_dump($session->get('.1.3.6.1.2.1.1.1.0')); var_dump($session->getnext('.1.3.6.1.2.1.1.1.0')); var_dump($session->close()); echo "SNMPv3 (noAuthNoPriv)\n"; $session = new SNMP(SNMP::VERSION_3, $hostname, $user_noauth, $timeout, $retries); $session->setSecurity('noAuthNoPriv'); var_dump($session->get('.1.3.6.1.2.1.1.1.0')); var_dump($session->getnext('.1.3.6.1.2.1.1.1.0')); var_dump($session->close()); echo "SNMPv3 (authPriv)\n"; $session = new SNMP(SNMP::VERSION_3, $hostname, $rwuser, $timeout, $retries); $session->setSecurity('authPriv', 'MD5', $auth_pass, 'AES', $priv_pass); var_dump($session->get('.1.3.6.1.2.1.1.1.0')); var_dump($session->getnext('.1.3.6.1.2.1.1.1.0')); var_dump($session->walk('.1.3.6.1.2.1.1.1.0')); var_dump($session->close()); echo "SET single OID\n"; $session = new SNMP(SNMP::VERSION_3, $hostname, $rwuser, $timeout, $retries); $session->setSecurity('authPriv', 'MD5', $auth_pass, 'AES', $priv_pass); $oid1 = 'SNMPv2-MIB::sysContact.0'; $oldvalue1 = $session->get($oid1); $newvalue1 = $oldvalue1 . '0'; $z = $session->set($oid1, 's', $newvalue1); var_dump($z); var_dump($session->get($oid1) === $newvalue1); $z = $session->set($oid1, 's', $oldvalue1); var_dump($z); var_dump($session->get($oid1) === $oldvalue1); var_dump($session->close()); echo "Multiple OID with max_oids = 1\n";
echo "SNMP::ERRNO_OID_PARSING_ERROR\n"; echo "GET: Single wrong OID\n"; $session = new SNMP(SNMP::VERSION_2c, $hostname, $community, $timeout, $retries); var_dump(@$session->get('.1.3.6.1.2..1.1.1.0')); var_dump($session->getErrno() == SNMP::ERRNO_OID_PARSING_ERROR); var_dump($session->getError()); $session->close(); echo "GET: Miltiple OID, one wrong\n"; $session = new SNMP(SNMP::VERSION_2c, $hostname, $community, $timeout, $retries); var_dump(@$session->get(array('.1.3.6.1.2.1.1.1.0', '.1.3.6.1.2..1.1.1.0'))); var_dump($session->getErrno() == SNMP::ERRNO_OID_PARSING_ERROR); var_dump($session->getError()); $session->close(); echo "WALK: Single wrong OID\n"; $session = new SNMP(SNMP::VERSION_2c, $hostname, $community, $timeout, $retries); var_dump(@$session->walk('.1.3.6.1.2..1.1')); var_dump($session->getErrno() == SNMP::ERRNO_OID_PARSING_ERROR); var_dump($session->getError()); $session->close(); echo "SET: Wrong type\n"; $session = new SNMP(SNMP::VERSION_3, $hostname, $rwuser, $timeout, $retries); $session->setSecurity('authPriv', 'MD5', $auth_pass, 'AES', $priv_pass); $oid1 = 'SNMPv2-MIB::sysContact.0'; var_dump(@$session->set($oid1, 'q', 'blah')); var_dump($session->getErrno() == SNMP::ERRNO_OID_PARSING_ERROR); var_dump($session->getError()); echo "SNMP::ERRNO_MULTIPLE_SET_QUERIES\n"; $oid1 = 'SNMPv2-MIB::sysContact.0'; $oid2 = 'SNMPv2-MIB::sysLocation.0'; $session = new SNMP(SNMP::VERSION_3, $hostname, $rwuser, $timeout, $retries); $session->setSecurity('authPriv', 'MD5', $auth_pass, 'AES', $priv_pass);