xref: /PHP-7.4/ext/snmp/tests/snmp-object.phpt (revision 26dfce7f)
1--TEST--
2OO API
3--CREDITS--
4Boris Lytochkin
5--SKIPIF--
6<?php
7require_once(__DIR__.'/skipif.inc');
8?>
9--FILE--
10<?php
11require_once(__DIR__.'/snmp_include.inc');
12
13//EXPECTF format is quickprint OFF
14snmp_set_enum_print(false);
15snmp_set_quick_print(false);
16snmp_set_valueretrieval(SNMP_VALUE_PLAIN);
17snmp_set_oid_output_format(SNMP_OID_OUTPUT_FULL);
18
19echo "SNMPv1\n";
20$session = new SNMP(SNMP::VERSION_1, $hostname, $community, $timeout, $retries);
21$session->valueretrieval = SNMP_VALUE_LIBRARY;
22var_dump($session->get('.1.3.6.1.2.1.1.1.0'));
23var_dump($session->get(array('.1.3.6.1.2.1.1.1.0', '.1.3.6.1.2.1.1.3.0')));
24var_dump($session->getnext('.1.3.6.1.2.1.1.1.0'));
25var_dump($session->close());
26
27echo "SNMPv2\n";
28$session = new SNMP(SNMP::VERSION_2c, $hostname, $community, $timeout, $retries);
29var_dump($session->get('.1.3.6.1.2.1.1.1.0'));
30var_dump($session->getnext('.1.3.6.1.2.1.1.1.0'));
31var_dump($session->close());
32
33echo "GET with preserving original OID names\n";
34$session = new SNMP(SNMP::VERSION_2c, $hostname, $community, $timeout, $retries);
35$orig = array('.1.3.6.1.2.1.1.1.0', '.1.3.6.1.2.1.1.5.0');
36$result = $session->get($orig, TRUE);
37foreach($orig as $oid){
38	var_dump($result[$oid]);
39}
40var_dump($session->close());
41
42echo "WALK multiple on single OID\n";
43$session = new SNMP(SNMP::VERSION_2c, $hostname, $community, $timeout, $retries);
44$z = $session->walk('.1.3.6.1.2.1.1');
45var_dump(gettype($z));
46var_dump(count($z));
47var_dump(key($z));
48var_dump(array_shift($z));
49var_dump($session->close());
50
51echo "WALK multiple on single OID, max_repetitions set to 30\n";
52$session = new SNMP(SNMP::VERSION_2c, $hostname, $community, $timeout, $retries);
53$z = $session->walk('.1.3.6.1.2.1.1', FALSE, 30);
54var_dump(gettype($z));
55var_dump(count($z));
56var_dump(key($z));
57var_dump(array_shift($z));
58var_dump($session->close());
59
60echo "WALK multiple on single OID, max_repetitions set to 30, non_repeaters set to 0\n";
61$session = new SNMP(SNMP::VERSION_2c, $hostname, $community, $timeout, $retries);
62$z = $session->walk('.1.3.6.1.2.1.1', FALSE, 30, 0);
63var_dump(gettype($z));
64var_dump(count($z));
65var_dump(key($z));
66var_dump(array_shift($z));
67var_dump($session->close());
68
69echo "WALK multiple on single OID, max_oids set to 30\n";
70$session = new SNMP(SNMP::VERSION_2c, $hostname, $community, $timeout, $retries);
71$session->max_oids = 30;
72$z = $session->walk('.1.3.6.1.2.1.1');
73var_dump(gettype($z));
74var_dump(count($z));
75var_dump(key($z));
76var_dump(array_shift($z));
77var_dump($session->close());
78
79echo "WALK multiple on single OID with OID suffix as keys\n";
80$session = new SNMP(SNMP::VERSION_2c, $hostname, $community, $timeout, $retries);
81$z = $session->walk('.1.3.6.1.2.1.1', TRUE);
82var_dump(gettype($z));
83var_dump(count($z));
84var_dump(key($z));
85var_dump(array_shift($z));
86var_dump(key($z));
87array_shift($z);
88var_dump(key($z));
89array_shift($z);
90var_dump(key($z));
91array_shift($z);
92var_dump(key($z));
93var_dump($session->close());
94
95echo "SNMPv3 (default security settings)\n";
96$session = new SNMP(SNMP::VERSION_3, $hostname, $user_noauth, $timeout, $retries);
97#$session->setSecurity($user_noauth, 'noAuthNoPriv', '', '', '', '', '', '');
98var_dump($session->get('.1.3.6.1.2.1.1.1.0'));
99var_dump($session->getnext('.1.3.6.1.2.1.1.1.0'));
100var_dump($session->close());
101
102echo "SNMPv3 (noAuthNoPriv)\n";
103$session = new SNMP(SNMP::VERSION_3, $hostname, $user_noauth, $timeout, $retries);
104$session->setSecurity('noAuthNoPriv');
105var_dump($session->get('.1.3.6.1.2.1.1.1.0'));
106var_dump($session->getnext('.1.3.6.1.2.1.1.1.0'));
107var_dump($session->close());
108
109echo "SNMPv3 (authPriv)\n";
110$session = new SNMP(SNMP::VERSION_3, $hostname, $rwuser, $timeout, $retries);
111$session->setSecurity('authPriv', 'MD5', $auth_pass, 'AES', $priv_pass);
112var_dump($session->get('.1.3.6.1.2.1.1.1.0'));
113var_dump($session->getnext('.1.3.6.1.2.1.1.1.0'));
114var_dump($session->walk('.1.3.6.1.2.1.1.1.0'));
115var_dump($session->close());
116
117echo "SET single OID\n";
118$session = new SNMP(SNMP::VERSION_3, $hostname, $rwuser, $timeout, $retries);
119$session->setSecurity('authPriv', 'MD5', $auth_pass, 'AES', $priv_pass);
120$oid1 = 'SNMPv2-MIB::sysContact.0';
121$oldvalue1 = $session->get($oid1);
122$newvalue1 = $oldvalue1 . '0';
123
124$z = $session->set($oid1, 's', $newvalue1);
125var_dump($z);
126var_dump(($session->get($oid1) === $newvalue1));
127$z = $session->set($oid1, 's', $oldvalue1);
128var_dump($z);
129var_dump(($session->get($oid1) === $oldvalue1));
130var_dump($session->close());
131
132echo "Multiple OID with max_oids = 1\n";
133$oid2 = 'SNMPv2-MIB::sysLocation.0';
134$session = new SNMP(SNMP::VERSION_3, $hostname, $rwuser, $timeout, $retries);
135$session->setSecurity('authPriv', 'MD5', $auth_pass, 'AES', $priv_pass);
136$session->max_oids = 1;
137$oldvalue2 = $session->get($oid2);
138$newvalue2 = $oldvalue2 . '0';
139$z = $session->set(array($oid1, $oid2), array('s','s'), array($newvalue1, $newvalue2));
140var_dump($z);
141var_dump(($session->get($oid1) === $newvalue1));
142var_dump(($session->get($oid2) === $newvalue2));
143$z = $session->set(array($oid1, $oid2), array('s','s'), array($oldvalue1, $oldvalue2));
144var_dump($z);
145var_dump(($session->get($oid1) === $oldvalue1));
146var_dump(($session->get($oid2) === $oldvalue2));
147var_dump($session->close());
148
149echo "SNMPv3, setting contextEngineID (authPriv)\n";
150$session = new SNMP(SNMP::VERSION_3, $hostname, $rwuser, $timeout, $retries);
151$session->setSecurity('authPriv', 'MD5', $auth_pass, 'AES', $priv_pass, '', 'aeeeff');
152var_dump($session->get('.1.3.6.1.2.1.1.1.0'));
153var_dump($session->close());
154
155?>
156--EXPECTF--
157SNMPv1
158string(%d) "%S"
159array(2) {
160  ["%s"]=>
161  string(%d) "%S"
162  ["%s"]=>
163  string(%d) "%S"
164}
165string(%d) "%S"
166bool(true)
167SNMPv2
168string(%d) "%S"
169string(%d) "%S"
170bool(true)
171GET with preserving original OID names
172string(%d) "%s"
173string(%d) "%s"
174bool(true)
175WALK multiple on single OID
176string(5) "array"
177int(%d)
178string(%d) "%S"
179string(%d) "%S"
180bool(true)
181WALK multiple on single OID, max_repetitions set to 30
182string(5) "array"
183int(%d)
184string(%d) "%S"
185string(%d) "%S"
186bool(true)
187WALK multiple on single OID, max_repetitions set to 30, non_repeaters set to 0
188string(5) "array"
189int(%d)
190string(%d) "%S"
191string(%d) "%S"
192bool(true)
193WALK multiple on single OID, max_oids set to 30
194string(5) "array"
195int(%d)
196string(%d) "%S"
197string(%d) "%S"
198bool(true)
199WALK multiple on single OID with OID suffix as keys
200string(5) "array"
201int(%d)
202string(3) "1.0"
203string(%d) "%s"
204string(3) "2.0"
205string(3) "3.0"
206string(3) "4.0"
207string(3) "5.0"
208bool(true)
209SNMPv3 (default security settings)
210string(%d) "%S"
211string(%d) "%S"
212bool(true)
213SNMPv3 (noAuthNoPriv)
214string(%d) "%S"
215string(%d) "%S"
216bool(true)
217SNMPv3 (authPriv)
218string(%d) "%S"
219string(%d) "%S"
220array(1) {
221  [%s]=>
222  string(%d) "%S"
223}
224bool(true)
225SET single OID
226bool(true)
227bool(true)
228bool(true)
229bool(true)
230bool(true)
231Multiple OID with max_oids = 1
232
233Warning: SNMP::set(): Can not fit all OIDs for SET query into one packet, using multiple queries in %s on line %d
234bool(true)
235bool(true)
236bool(true)
237
238Warning: SNMP::set(): Can not fit all OIDs for SET query into one packet, using multiple queries in %s on line %d
239bool(true)
240bool(true)
241bool(true)
242bool(true)
243SNMPv3, setting contextEngineID (authPriv)
244string(%d) "%S"
245bool(true)
246