snmp-object.phpt 7.0 KB

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