2011-01-31 11:41:33 +00:00
|
|
|
--TEST--
|
|
|
|
OO API
|
|
|
|
--CREDITS--
|
|
|
|
Boris Lytochkin
|
|
|
|
--SKIPIF--
|
|
|
|
<?php
|
|
|
|
require_once(dirname(__FILE__).'/skipif.inc');
|
|
|
|
?>
|
|
|
|
--FILE--
|
|
|
|
<?php
|
|
|
|
require_once(dirname(__FILE__).'/snmp_include.inc');
|
|
|
|
|
|
|
|
//EXPECTF format is quickprint OFF
|
|
|
|
snmp_set_enum_print(false);
|
|
|
|
snmp_set_quick_print(false);
|
|
|
|
snmp_set_valueretrieval(SNMP_VALUE_PLAIN);
|
|
|
|
snmp_set_oid_output_format(SNMP_OID_OUTPUT_FULL);
|
|
|
|
|
|
|
|
echo "SNMPv1\n";
|
2011-06-12 12:10:01 +00:00
|
|
|
$session = new SNMP(SNMP::VERSION_1, $hostname, $community, $timeout, $retries);
|
2011-01-31 11:41:33 +00:00
|
|
|
$session->valueretrieval = SNMP_VALUE_LIBRARY;
|
|
|
|
var_dump($session->get('.1.3.6.1.2.1.1.1.0'));
|
|
|
|
var_dump($session->get(array('.1.3.6.1.2.1.1.1.0', '.1.3.6.1.2.1.1.3.0')));
|
|
|
|
var_dump($session->getnext('.1.3.6.1.2.1.1.1.0'));
|
|
|
|
var_dump($session->close());
|
|
|
|
|
|
|
|
echo "SNMPv2\n";
|
2011-06-12 12:10:01 +00:00
|
|
|
$session = new SNMP(SNMP::VERSION_2c, $hostname, $community, $timeout, $retries);
|
2011-01-31 11:41:33 +00:00
|
|
|
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());
|
|
|
|
|
2011-05-08 13:58:37 +00:00
|
|
|
echo "GET with preserving original OID names\n";
|
2011-06-12 12:10:01 +00:00
|
|
|
$session = new SNMP(SNMP::VERSION_2c, $hostname, $community, $timeout, $retries);
|
2011-05-08 13:58:37 +00:00
|
|
|
$orig = array('.1.3.6.1.2.1.1.1.0', '.1.3.6.1.2.1.1.5.0');
|
|
|
|
$result = $session->get($orig, TRUE);
|
|
|
|
foreach($orig as $oid){
|
|
|
|
var_dump($result[$oid]);
|
|
|
|
}
|
|
|
|
var_dump($session->close());
|
|
|
|
|
2011-01-31 11:41:33 +00:00
|
|
|
echo "WALK multiple on single OID\n";
|
2011-06-12 12:10:01 +00:00
|
|
|
$session = new SNMP(SNMP::VERSION_2c, $hostname, $community, $timeout, $retries);
|
2011-01-31 11:41:33 +00:00
|
|
|
$z = $session->walk('.1.3.6.1.2.1.1');
|
|
|
|
var_dump(gettype($z));
|
|
|
|
var_dump(count($z));
|
|
|
|
var_dump(key($z));
|
|
|
|
var_dump(array_shift($z));
|
|
|
|
var_dump($session->close());
|
|
|
|
|
2011-07-17 18:14:38 +00:00
|
|
|
echo "WALK multiple on single OID, max_repetitions set to 30\n";
|
2011-06-12 12:10:01 +00:00
|
|
|
$session = new SNMP(SNMP::VERSION_2c, $hostname, $community, $timeout, $retries);
|
2011-07-17 18:14:38 +00:00
|
|
|
$z = $session->walk('.1.3.6.1.2.1.1', FALSE, 30);
|
2011-01-31 11:41:33 +00:00
|
|
|
var_dump(gettype($z));
|
|
|
|
var_dump(count($z));
|
|
|
|
var_dump(key($z));
|
|
|
|
var_dump(array_shift($z));
|
|
|
|
var_dump($session->close());
|
|
|
|
|
2011-07-17 18:14:38 +00:00
|
|
|
echo "WALK multiple on single OID, max_repetitions set to 30, non_repeaters set to 0\n";
|
2011-06-12 12:10:01 +00:00
|
|
|
$session = new SNMP(SNMP::VERSION_2c, $hostname, $community, $timeout, $retries);
|
2011-07-17 18:14:38 +00:00
|
|
|
$z = $session->walk('.1.3.6.1.2.1.1', FALSE, 30, 0);
|
2011-01-31 11:41:33 +00:00
|
|
|
var_dump(gettype($z));
|
|
|
|
var_dump(count($z));
|
|
|
|
var_dump(key($z));
|
|
|
|
var_dump(array_shift($z));
|
|
|
|
var_dump($session->close());
|
|
|
|
|
2011-02-26 08:27:26 +00:00
|
|
|
echo "WALK multiple on single OID, max_oids set to 30\n";
|
2011-06-12 12:10:01 +00:00
|
|
|
$session = new SNMP(SNMP::VERSION_2c, $hostname, $community, $timeout, $retries);
|
2011-02-26 08:27:26 +00:00
|
|
|
$session->max_oids = 30;
|
|
|
|
$z = $session->walk('.1.3.6.1.2.1.1');
|
|
|
|
var_dump(gettype($z));
|
|
|
|
var_dump(count($z));
|
|
|
|
var_dump(key($z));
|
|
|
|
var_dump(array_shift($z));
|
|
|
|
var_dump($session->close());
|
|
|
|
|
2011-05-08 13:58:37 +00:00
|
|
|
echo "WALK multiple on single OID with OID suffix as keys\n";
|
2011-06-12 12:10:01 +00:00
|
|
|
$session = new SNMP(SNMP::VERSION_2c, $hostname, $community, $timeout, $retries);
|
2011-05-08 13:58:37 +00:00
|
|
|
$z = $session->walk('.1.3.6.1.2.1.1', TRUE);
|
|
|
|
var_dump(gettype($z));
|
|
|
|
var_dump(count($z));
|
|
|
|
var_dump(key($z));
|
|
|
|
var_dump(array_shift($z));
|
|
|
|
var_dump($session->close());
|
|
|
|
|
2011-01-31 11:41:33 +00:00
|
|
|
echo "SNMPv3 (default security settings)\n";
|
2011-06-12 12:10:01 +00:00
|
|
|
$session = new SNMP(SNMP::VERSION_3, $hostname, $user_noauth, $timeout, $retries);
|
2011-03-20 20:07:33 +00:00
|
|
|
#$session->setSecurity($user_noauth, 'noAuthNoPriv', '', '', '', '', '', '');
|
2011-01-31 11:41:33 +00:00
|
|
|
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";
|
2011-06-12 12:10:01 +00:00
|
|
|
$session = new SNMP(SNMP::VERSION_3, $hostname, $user_noauth, $timeout, $retries);
|
2011-03-20 20:07:33 +00:00
|
|
|
$session->setSecurity('noAuthNoPriv');
|
2011-01-31 11:41:33 +00:00
|
|
|
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";
|
2011-06-12 12:10:01 +00:00
|
|
|
$session = new SNMP(SNMP::VERSION_3, $hostname, $rwuser, $timeout, $retries);
|
2011-03-20 20:07:33 +00:00
|
|
|
$session->setSecurity('authPriv', 'MD5', $auth_pass, 'AES', $priv_pass);
|
2011-01-31 11:41:33 +00:00
|
|
|
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";
|
2011-06-12 12:10:01 +00:00
|
|
|
$session = new SNMP(SNMP::VERSION_3, $hostname, $rwuser, $timeout, $retries);
|
2011-03-20 20:07:33 +00:00
|
|
|
$session->setSecurity('authPriv', 'MD5', $auth_pass, 'AES', $priv_pass);
|
2011-01-31 11:41:33 +00:00
|
|
|
$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());
|
|
|
|
|
2011-08-31 08:36:22 +00:00
|
|
|
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());
|
|
|
|
|
2011-01-31 11:41:33 +00:00
|
|
|
echo "SNMPv3, setting contextEngineID (authPriv)\n";
|
2011-06-12 12:10:01 +00:00
|
|
|
$session = new SNMP(SNMP::VERSION_3, $hostname, $rwuser, $timeout, $retries);
|
2011-03-20 20:07:33 +00:00
|
|
|
$session->setSecurity('authPriv', 'MD5', $auth_pass, 'AES', $priv_pass, '', 'aeeeff');
|
2011-01-31 11:41:33 +00:00
|
|
|
var_dump($session->get('.1.3.6.1.2.1.1.1.0'));
|
|
|
|
var_dump($session->close());
|
|
|
|
|
|
|
|
?>
|
|
|
|
--EXPECTF--
|
|
|
|
SNMPv1
|
|
|
|
string(%d) "%S"
|
|
|
|
array(2) {
|
|
|
|
["%s"]=>
|
|
|
|
string(%d) "%S"
|
|
|
|
["%s"]=>
|
|
|
|
string(%d) "%S"
|
|
|
|
}
|
|
|
|
string(%d) "%S"
|
|
|
|
bool(true)
|
|
|
|
SNMPv2
|
|
|
|
string(%d) "%S"
|
|
|
|
string(%d) "%S"
|
|
|
|
bool(true)
|
2011-05-08 13:58:37 +00:00
|
|
|
GET with preserving original OID names
|
|
|
|
string(%d) "%s"
|
|
|
|
string(%d) "%s"
|
|
|
|
bool(true)
|
2011-01-31 11:41:33 +00:00
|
|
|
WALK multiple on single OID
|
|
|
|
string(5) "array"
|
|
|
|
int(%d)
|
|
|
|
string(%d) "%S"
|
|
|
|
string(%d) "%S"
|
|
|
|
bool(true)
|
2011-07-17 18:14:38 +00:00
|
|
|
WALK multiple on single OID, max_repetitions set to 30
|
2011-01-31 11:41:33 +00:00
|
|
|
string(5) "array"
|
|
|
|
int(%d)
|
|
|
|
string(%d) "%S"
|
|
|
|
string(%d) "%S"
|
|
|
|
bool(true)
|
2011-07-17 18:14:38 +00:00
|
|
|
WALK multiple on single OID, max_repetitions set to 30, non_repeaters set to 0
|
2011-01-31 11:41:33 +00:00
|
|
|
string(5) "array"
|
|
|
|
int(%d)
|
|
|
|
string(%d) "%S"
|
|
|
|
string(%d) "%S"
|
|
|
|
bool(true)
|
2011-02-26 08:27:26 +00:00
|
|
|
WALK multiple on single OID, max_oids set to 30
|
|
|
|
string(5) "array"
|
|
|
|
int(%d)
|
|
|
|
string(%d) "%S"
|
|
|
|
string(%d) "%S"
|
|
|
|
bool(true)
|
2011-05-08 13:58:37 +00:00
|
|
|
WALK multiple on single OID with OID suffix as keys
|
|
|
|
string(5) "array"
|
|
|
|
int(%d)
|
|
|
|
string(3) "1.0"
|
|
|
|
string(%d) "%s"
|
|
|
|
bool(true)
|
2011-01-31 11:41:33 +00:00
|
|
|
SNMPv3 (default security settings)
|
|
|
|
string(%d) "%S"
|
|
|
|
string(%d) "%S"
|
|
|
|
bool(true)
|
|
|
|
SNMPv3 (noAuthNoPriv)
|
|
|
|
string(%d) "%S"
|
|
|
|
string(%d) "%S"
|
|
|
|
bool(true)
|
|
|
|
SNMPv3 (authPriv)
|
|
|
|
string(%d) "%S"
|
|
|
|
string(%d) "%S"
|
|
|
|
array(1) {
|
|
|
|
[%s]=>
|
|
|
|
string(%d) "%S"
|
|
|
|
}
|
|
|
|
bool(true)
|
|
|
|
SET single OID
|
|
|
|
bool(true)
|
|
|
|
bool(true)
|
|
|
|
bool(true)
|
|
|
|
bool(true)
|
|
|
|
bool(true)
|
2011-08-31 08:36:22 +00:00
|
|
|
Multiple OID with max_oids = 1
|
|
|
|
|
|
|
|
Warning: SNMP::set(): Can not fit all OIDs for SET query into one packet, using multiple queries in %s on line %d
|
|
|
|
bool(true)
|
|
|
|
bool(true)
|
|
|
|
bool(true)
|
|
|
|
|
|
|
|
Warning: SNMP::set(): Can not fit all OIDs for SET query into one packet, using multiple queries in %s on line %d
|
|
|
|
bool(true)
|
|
|
|
bool(true)
|
|
|
|
bool(true)
|
|
|
|
bool(true)
|
2011-01-31 11:41:33 +00:00
|
|
|
SNMPv3, setting contextEngineID (authPriv)
|
|
|
|
string(%d) "%S"
|
2011-03-20 20:07:33 +00:00
|
|
|
bool(true)
|