Exemple #1
7
<?php

$session_snmp = new SNMP(SNMP::VERSION_1, "192.168.0.180", "public");
$get_oid_humidade = $session_snmp->get("1.3.6.1.2.1.1.9.0");
echo "HUMIDADE > " . $get_oid_humidade;
} 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);
$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";
$oid2 = 'SNMPv2-MIB::sysLocation.0';
$session = new SNMP(SNMP::VERSION_3, $hostname, $rwuser, $timeout, $retries);
$session->setSecurity('authPriv', 'MD5', $auth_pass, 'AES', $priv_pass);
$session->max_oids = 1;
$oldvalue2 = $session->get($oid2);
$newvalue2 = $oldvalue2 . '0';
$z = $session->set(array($oid1, $oid2), array('s', 's'), array($newvalue1, $newvalue2));
var_dump($z);
var_dump($session->get($oid1) === $newvalue1);
var_dump($session->get($oid2) === $newvalue2);
$z = $session->set(array($oid1, $oid2), array('s', 's'), array($oldvalue1, $oldvalue2));
var_dump($z);
var_dump($session->get($oid1) === $oldvalue1);
var_dump($session->get($oid2) === $oldvalue2);
var_dump($session->close());
echo "SNMPv3, setting contextEngineID (authPriv)\n";
$session = new SNMP(SNMP::VERSION_3, $hostname, $rwuser, $timeout, $retries);
$session->setSecurity('authPriv', 'MD5', $auth_pass, 'AES', $priv_pass, '', 'aeeeff');
var_dump($session->get('.1.3.6.1.2.1.1.1.0'));
var_dump($session->close());
function trigger(&$format_string)
{
    $session = new SNMP(SNMP::VERSION_3, "127.0.0.1", "public");
    // you MUST set exceptions_enabled in order to trigger this
    $session->exceptions_enabled = SNMP::ERRNO_ANY;
    try {
        $session->get($format_string);
    } catch (SNMPException $e) {
        return $e->getMessage();
    }
}
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 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);
}
Exemple #7
0
 function testNET_SNMP_SNMP()
 {
     //
     // SNMP
     //
     $SNMP = new SNMP();
     $SNMP->Connect(SNMP_AGENT_IP, null, "public");
     // GetTree
     $retval = $SNMP->GetTree(".1.3.6.1.2.1.25.2.3.1.6");
     $this->assertTrue(is_array($retval), "SNMP->GetAll() returned array");
     // Get
     $retval = $SNMP->Get("system.sysDescr.0");
     $this->assertTrue(is_string($retval), "SNMP->Get() returned string");
     // Get
     $retval = $SNMP->Get(".1.3.6.1.2.1.6.13.1.1.0.0.0.0.80.0.0.0.0.0");
     $this->assertTrue(is_string($retval), "SNMP->Get() returned string");
     // Get
     $retval = $SNMP->Get(".1.3.6.1.2.1.6.13.1.1.0.0.0.0.3306.0.0.0.0.0");
     $this->assertTrue(is_string($retval), "SNMP->Get() returned string");
 }
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 #9
0
 /**
  * Set path to SNMPtrap binary
  *
  * @param string $path
  */
 public static function SetSNMPTrapPath($path)
 {
     self::$SNMPTrapPath = $path;
 }
<?php

require_once dirname(__FILE__) . '/snmp_include.inc';
$hostname = "php.net";
$ip = gethostbyname($hostname);
if (ip2long($ip) === FALSE) {
    echo "Could not resolve {$hostname} properly!\n";
    exit(1);
}
$port = 1161;
$session = new SNMP(SNMP::VERSION_1, "{$hostname}:{$port}", $community, $timeout, $retries);
$info = $session->info;
if (strcmp($info["hostname"], "{$ip}:{$port}") !== 0) {
    echo "'" . $info["hostname"] . "' != '{$ip}:{$port}'\n";
}
var_dump($session->close());
Exemple #11
0
 /**
  * Executes PHP 5.4 SNMP set interface
  * 
  * @param string $ip
  * @param string $community
  * @param array  $data
  * @return string
  */
 protected function snmpSetClass($ip, $community, $data)
 {
     $result = '';
     if (!empty($data)) {
         if (is_array($data)) {
             foreach ($data as $io => $each) {
                 if (isset($each['oid']) and (isset($each['type']) and isset($each['value']))) {
                     $session = new SNMP(SNMP::VERSION_2c, $ip, $community, $this->timeoutNative, $this->retriesNative);
                     @($pushResult = $session->set($each['oid'], $each['type'], $each['value']));
                     $session->close();
                     if ($pushResult) {
                         $result .= trim($this->snmpWalkClass($ip, $community, $each['oid'], false)) . "\n";
                     }
                 } else {
                     throw new Exception(self::EX_WRONG_DATA);
                 }
             }
         } else {
             throw new Exception(self::EX_WRONG_DATA);
         }
     }
     return $result;
 }
<?php

require_once dirname(__FILE__) . '/snmp_include.inc';
//EXPECTF format is quickprint OFF
snmp_set_quick_print(false);
snmp_set_valueretrieval(SNMP_VALUE_PLAIN);
$session = new SNMP(SNMP::VERSION_3, $hostname, $user_noauth, $timeout, $retries);
$session->setSecurity('noAuthNoPriv');
#echo "Checking error handling\n";
var_dump($session->setSecurity());
var_dump($session->setSecurity(''));
var_dump($session->setSecurity('bugusPriv'));
var_dump($session->setSecurity('authNoPriv', 'TTT'));
var_dump($session->setSecurity('authNoPriv', 'MD5', ''));
var_dump($session->setSecurity('authNoPriv', 'MD5', 'te'));
var_dump($session->setSecurity('authPriv', 'MD5', $auth_pass, 'BBB'));
var_dump($session->setSecurity('authPriv', 'MD5', $auth_pass, 'AES', ''));
var_dump($session->setSecurity('authPriv', 'MD5', $auth_pass, 'AES', 'ty'));
var_dump($session->setSecurity('authPriv', 'MD5', $auth_pass, 'AES', 'test12345', 'context', 'dsa'));
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'));
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);
$session->max_oids = 1;
$oldvalue1 = $session->get($oid1);
$newvalue1 = $oldvalue1 . '0';
$oldvalue2 = $session->get($oid2);
$newvalue2 = $oldvalue2 . '0';
$z = @$session->set(array($oid1, $oid2), array('s', 's'), array($newvalue1, $newvalue2));
var_dump($z);
var_dump($session->getErrno() == SNMP::ERRNO_MULTIPLE_SET_QUERIES);
var_dump($session->getError());
var_dump($session->get($oid1) === $newvalue1);
var_dump($session->get($oid2) === $newvalue2);
$z = @$session->set(array($oid1, $oid2), array('s', 's'), array($oldvalue1, $oldvalue2));
var_dump($z);
var_dump($session->getErrno() == SNMP::ERRNO_MULTIPLE_SET_QUERIES);
 function __construct($version, $hostname, $community, $security = null)
 {
     switch ($version) {
         case "1":
         case "v1":
             $version = parent::VERSION_1;
             break;
         case "2":
         case "2c":
         case "v2c":
             $version = parent::VERSION_2c;
             break;
         case "3":
         case "v3":
             $version = parent::VERSION_3;
             break;
     }
     parent::__construct($version, $hostname, $community);
     if ($version == SNMP::VERSION_3) {
         if ($security !== null && count($security) == 9) {
             $auth_passphrase = base64_decode($security[6]);
             $priv_passphrase = base64_decode($security[8]);
             if (!$this->setsecurity($security[4], $security[5], $auth_passphrase, $security[7], $priv_passphrase)) {
                 $this->error = "Security Error for v3 ({$hostname})";
                 return;
             }
         } else {
             $this->error = "Missing security settings for v3 ({$hostname})";
             return;
         }
     }
     $this->quick_print = 1;
     $this->oid_output_format = SNMP_OID_OUTPUT_NUMERIC;
 }
Exemple #15
-13
<?php

$session_snmp = new SNMP(SNMP::VERSION_1, "177.154.114.180", "public");
$get_iod_temperature = $session_snmp->get("1.3.6.1.2.1.1.8.0");
echo "TEMPERATURE >" . $get_iod_temperature;