Ejemplo n.º 1
0
function Set($ip, $ver, $cm, $oid, $f, $v, $t = 1000000, $r = 2)
{
    global $debug, $comms;
    if ($ver == 3 and $comms[$cm]['pprot']) {
        if ($debug) {
            echo "<div class=\"textpad noti \">snmpset -v3 -c{$cm} " . $comms[$cm]['aprot'] . "/" . $comms[$cm]['pprot'] . " {$ip} {$oid} {$f} {$v} ({$t} usec * {$r})</div>";
        }
        return snmp3_set($ip, $cm, 'authPriv', $comms[$cm]['aprot'], $comms[$cm]['apass'], $comms[$cm]['pprot'], $comms[$cm]['ppass'], ".{$oid}", $f, $v, $t);
    } elseif ($ver == 3 and $comms[$cm]['aprot']) {
        if ($debug) {
            echo "<div class=\"textpad noti \">snmpset -v3 -c{$cm} " . $comms[$cm]['aprot'] . " {$ip} {$oid} {$f} {$v} ({$t} usec * {$r})</div>";
        }
        return snmp3_set($ip, $cm, 'authNoPriv', $comms[$cm]['aprot'], $comms[$cm]['apass'], 'DES', '', ".{$oid}", $f, $v, $t);
    } elseif ($ver == 2) {
        if ($debug) {
            echo "<div class=\"textpad noti \">snmpset -v2c -c{$cm} {$ip} {$oid} {$f} {$v} ({$t} usec * {$r})</div>";
        }
        return snmp2_set($ip, $cm, ".{$oid}", $f, $v, $t);
    } elseif ($ver == 0) {
        if ($debug) {
            echo "<div class=\"textpad noti \">Skipping Non-SNMP Device</div>";
        }
        return 0;
    } else {
        if ($debug) {
            echo "<div class=\"textpad noti \">snmpset -v1 -c{$cm} {$ip} {$oid} {$f} {$v} ({$t} usec * {$r})</div>";
        }
        return snmpset($ip, $cm, ".{$oid}", $f, $v, $t);
    }
}
Ejemplo n.º 2
0
$z = snmp3_walk($hostname, $username, 'authNoPriv', 'MD5', $auth_pass, '', '', '.1.3.6.1.2.1.1.1.0', $timeout, $retries);
var_dump(gettype($z));
var_dump(count($z));
var_dump($z);
echo "REALWALK single on single OID\n";
$z = snmp3_real_walk($hostname, $username, 'authNoPriv', 'MD5', $auth_pass, '', '', '.1.3.6.1.2.1.1.1.0', $timeout, $retries);
var_dump(gettype($z));
var_dump(count($z));
var_dump($z);
echo "WALK multiple on single OID\n";
$z = snmp3_walk($hostname, $username, 'authNoPriv', 'MD5', $auth_pass, '', '', '.1.3.6.1.2.1.1', $timeout, $retries);
var_dump(gettype($z));
var_dump(count($z));
var_dump(key($z));
var_dump(array_shift($z));
echo "REALWALK multiple on single OID\n";
$z = snmp3_real_walk($hostname, $username, 'authNoPriv', 'MD5', $auth_pass, 'AES', '', '.1.3.6.1.2.1.1', $timeout, $retries);
var_dump(gettype($z));
var_dump(count($z));
var_dump(key($z));
var_dump(array_shift($z));
echo "SET single OID\n";
$oid1 = 'SNMPv2-MIB::sysContact.0';
$oldvalue1 = snmp3_get($hostname, $rwuser, 'authPriv', 'MD5', $auth_pass, 'AES', $priv_pass, $oid1, $timeout, $retries);
$newvalue1 = $oldvalue1 . '0';
$z = snmp3_set($hostname, $rwuser, 'authPriv', 'MD5', $auth_pass, 'AES', $priv_pass, $oid1, 's', $newvalue1, $timeout, $retries);
var_dump($z);
var_dump(snmp3_get($hostname, $rwuser, 'authPriv', 'MD5', $auth_pass, 'AES', $priv_pass, $oid1, $timeout, $retries) === $newvalue1);
$z = snmp3_set($hostname, $rwuser, 'authPriv', 'MD5', $auth_pass, 'AES', $priv_pass, $oid1, 's', $oldvalue1, $timeout, $retries);
var_dump($z);
var_dump(snmp3_get($hostname, $rwuser, 'authPriv', 'MD5', $auth_pass, 'AES', $priv_pass, $oid1, $timeout, $retries) === $oldvalue1);
Ejemplo n.º 3
0
 function snmpset($oid, $type, $value)
 {
     return snmp3_set($this->hostname, $this->snmpsetup['sec_name'], $this->snmpsetup['sec_level'], $this->snmpsetup['auth_protocol'], $this->snmpsetup['auth_passphrase'], $this->snmpsetup['priv_protocol'], $this->snmpsetup['priv_passphrase'], $oid, $type, $value);
 }
<?php

require_once dirname(__FILE__) . '/snmp_include.inc';
echo "Checking error handling\n";
//int snmp3_get(string host, string sec_name, string sec_level, string auth_protocol,
//              string auth_passphrase, string priv_protocol, string priv_passphrase,
//              string object_id [, int timeout [, int retries]]);
var_dump(snmp3_get($hostname, $community, '', '', '', '', ''));
var_dump(snmp3_get($hostname, $community, '', '', '', '', '', '.1.3.6.1.2.1.1.1.0'));
var_dump(snmp3_get($hostname, $community, 'bugusPriv', '', '', '', '', '.1.3.6.1.2.1.1.1.0'));
var_dump(snmp3_get($hostname, $community, 'authNoPriv', 'TTT', '', '', '', '.1.3.6.1.2.1.1.1.0'));
var_dump(snmp3_get($hostname, $community, 'authNoPriv', 'MD5', '', '', '', '.1.3.6.1.2.1.1.1.0'));
var_dump(snmp3_get($hostname, $community, 'authNoPriv', 'MD5', 'te', '', '', '.1.3.6.1.2.1.1.1.0'));
var_dump(snmp3_get($hostname, $community, 'authPriv', 'MD5', $auth_pass, 'BBB', '', '.1.3.6.1.2.1.1.1.0'));
var_dump(snmp3_get($hostname, $community, 'authPriv', 'MD5', $auth_pass, 'AES', '', '.1.3.6.1.2.1.1.1.0'));
var_dump(snmp3_get($hostname, $community, 'authPriv', 'MD5', $auth_pass, 'AES', 'ty', '.1.3.6.1.2.1.1.1.0'));
var_dump(snmp3_get($hostname, 'somebogususer', 'authPriv', 'MD5', $auth_pass, 'AES', $priv_pass, '.1.3.6.1.2.1.1.1.0', $timeout, $retries));
var_dump(snmp3_set($hostname, $community, 'authPriv', 'MD5', $auth_pass, 'AES', $priv_pass, '', 's'));
var_dump(snmp3_set($hostname, $rwuser, 'authPriv', 'MD5', $auth_pass, 'AES', $priv_pass, '.1.3.6.777...7.5.3', 's', 'ttt', $timeout, $retries));
var_dump(snmp3_set($hostname, $rwuser, 'authPriv', 'MD5', $auth_pass, 'AES', $priv_pass, '.1.3.6.777.7.5.3', array('s'), 'yyy', $timeout, $retries));
Ejemplo n.º 5
0
 /**
  * Change SNMP value
  * The "type" parameter must be one of the following, depending on the type of variable to set on the SNMP host:
  * i    INTEGER
  * u    unsigned INTEGER
  * t    TIMETICKS
  * a    IPADDRESS
  * o    OBJID
  * s    STRING
  * x    HEX STRING
  * d    DECIMAL STRING
  * n    NULLOBJ
  * b    BITS 
  * @param Host $host
  * @param string $object_id
  * @param string $type
  * @param mixed $value
  * @return bool
  * @throws Exception
  */
 public static function set($host, $object_id, $type, $value)
 {
     snmp_set_oid_output_format(self::$oid_format);
     $snmp = $host->snmpTemplate;
     if (is_null($type)) {
         throw new Exception('type not set');
     }
     if ($snmp instanceof SnmpTemplate) {
         switch ($snmp->version) {
             case "1":
                 $result = snmpset($host->ip, $snmp->community, $object_id, $type, $value, $snmp->timeout, $snmp->retries);
                 break;
             case "2":
             case "2c":
                 $result = snmp2_set($host->ip, $snmp->community, $object_id, $type, $value, $snmp->timeout, $snmp->retries);
                 break;
             case "3":
                 $result = snmp3_set($host->ip, $snmp->security_name, $snmp->security_level, $snmp->auth_protocol, $snmp->auth_passphrase, $snmp->priv_protocol, $snmp->priv_passphrase, $object_id, $type, $value, $snmp->timeout, $snmp->retries);
                 break;
             default:
                 throw new Exception('SNMP Template not implemented yet');
         }
     }
     return $result;
 }
Ejemplo n.º 6
0
 protected function snmpset($oid, $value, $type = null, $version = null, $community = null)
 {
     if (!$version) {
         $version = $this->getAgentVersion();
     }
     if (!$community) {
         $community = $this->writeCommunity;
     }
     if (!$type) {
         list($oldValue, $oid, $type) = reset($this->getParsed($oid));
     }
     if (!($typeCode = $this->getTypeCode($type))) {
         $this->setError(self::ERROR_UNKNOWN_TYPE);
         return false;
     }
     switch ($version) {
         case 1:
             return @snmpset($this->host, $community, $oid, $typeCode, $value, $this->timeout * 1000000, $this->retries);
         case 2:
             return @snmp2_set($this->host, $community, $oid, $typeCode, $value, $this->timeout * 1000000, $this->retries);
         case 3:
             extract($this->version3);
             return @snmp3_set($this->host, $secName, $secLevel, $authProtocol, $authPassphrase, $privProtocol, $privPassphrase, $oid, $typeCode, $value, $this->timeout * 1000000, $this->retries);
         default:
             return false;
     }
 }