snmp-object.phpt 7.0 KB

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