} 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;
}
Exemple #5
0
 /**
  * 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);