get.t
上传用户:wxp200602
上传日期:2007-10-30
资源大小:4028k
文件大小:6k
源码类别:

SNMP编程

开发平台:

Unix_Linux

  1. #!./perl
  2. BEGIN {
  3.     unless(grep /blib/, @INC) {
  4.         chdir 't' if -d 't';
  5.         @INC = '../lib' if -d '../lib';
  6.     }
  7. }
  8. use Test;
  9. BEGIN { $n = 17; plan tests => $n }
  10. use SNMP;
  11. use vars qw($agent_port $comm $agent_host);
  12. require "t/startagent.pl";
  13. $SNMP::debugging = 0;
  14. $SNMP::verbose = 0;
  15. $SNMP::dump_packet = 0;
  16. my $junk_oid = ".1.3.6.1.2.1.1.1.1.1.1";
  17. my $oid = '.1.3.6.1.2.1.1.1';
  18. my $junk_name = 'fooDescr';
  19. my $junk_host = 'no.host.here';
  20. my $name = "gmarzot@nortelnetworks.com";
  21. my $s1;
  22. # create list of varbinds for GETS, val field can be null or omitted
  23. $vars = new SNMP::VarList (
  24.    ['sysDescr', '0', ''],
  25.    ['sysObjectID', '0'],
  26.    ['sysUpTime', '0'],
  27.    ['sysContact', '0'],
  28.    ['sysName', '0'],
  29.    ['sysLocation', '0'],
  30.    ['sysServices', '0'],
  31.    ['snmpInPkts', '0'],
  32.    ['snmpInBadVersions', '0'],
  33.    ['snmpInBadCommunityNames', '0'],
  34.    ['snmpInBadCommunityUses', '0'],
  35.    ['snmpInASNParseErrs', '0'],
  36.    ['snmpEnableAuthenTraps', '0'],
  37.    ['sysORID', '1'],
  38.    ['sysORDescr', '1'],
  39.    ['sysORUpTime', '1'],
  40.    ['sysORLastChange', '0'],
  41.    ['snmpSilentDrops', '0'],
  42.    ['snmpProxyDrops', '0'],
  43. ## not all agents we know will support these objects
  44. #    ['hrStorageType', '2'],
  45. #    ['hrSystemDate', '0'],
  46. #    ['sysORIndex', '1'],
  47. #    ['ifName', '1'],
  48. #    ['ifNumber', '0'],
  49. #    ['ifDescr', '1'],
  50. #    ['ifSpeed', '1'],
  51. #    ['snmpTrapEnterprise', '2'],
  52. #    ['ipInHdrErrors', '0'],
  53. #    ['ipDefaultTTL', '0'],
  54. #    ['ipInHdrErrors', '0'],
  55.           );
  56. ################################################################
  57. # Yet to do:
  58. # test for the max limit the 'get' can provide.
  59. # Figure out why the IP and Physical address are not getting printed.
  60. # why ifname is not getting printed?
  61. ################################################################
  62. #    ['ipNetToMediaPhysAddress', '0'],
  63. #    ['ipAdEntAddr', '0'],
  64. #    ['snmpTrapOID', '0'],
  65. #    ['hrSystemNumUsers', '0'],
  66. #    ['hrFSLastFullBackupDate', '0'],
  67. #    ['ifPromiscuousMode', '0'],
  68. ######################################################################
  69. # Fire up a session.
  70.     $s1 =
  71.     new SNMP::Session (DestHost=>$agent_host,Version=>1,Community=>$comm,RemotePort=>$agent_port);
  72.     ok(defined($s1));
  73. ######################################################################
  74. # Get the standard Vars and check that we got some defined vars back
  75. @ret = $s1->get($vars);
  76. ok(!$s1->{ErrorStr} and defined($ret[0]));
  77. #print STDERR "Error string = $s1->{ErrorStr}:$s1->{ErrorInd}n";
  78. ######################################################################
  79. # Check that we got back the number we asked for.
  80. ok($#ret == $#{$vars});
  81. #print("dude : $#retn");
  82. ################################################
  83. # Test for a string
  84. $contact = $s1->get('sysContact.0');
  85. #print("contact is : $contactn");
  86. ok( defined($contact));
  87. $name = $s1->get('sysName.0');
  88. #print("Name is : $namen");
  89. ok( defined($name));
  90. $location = $s1->get('sysLocation.0');
  91. #print("Location is : $locationn");
  92. ok( defined($location));
  93. #########################################
  94. # Test for an integer
  95. $ttl = $s1->get('ipDefaultTTL.0');
  96. #print("TTL is : $ttln");
  97. ok( defined($ttl));
  98. ########################################
  99. # Test for a TimeTicks
  100. $time = $s1->get('sysUpTime.0');
  101. #print("up time is : $time hundredths of a secondn");
  102. ok( defined($time));
  103. #########################################
  104. #Test for a Counter32 type.
  105. $totalDatagramsReceived = $s1->get('ipInHdrErrors.0');
  106. #print("totalDatagramsReceived is : $totalDatagramsReceivedn");
  107. ok( defined($totalDatagramsReceived));
  108. ################################################
  109. #Test for a PhysicalAddr type
  110. $physaddr = $s1->get('ipNetToMediaPhysAddress.0');
  111. #print("physical addr is : $physaddr n");
  112. ok( defined($physaddr));
  113. ##############################################
  114. #Test for a IpAddr type
  115. $ipaddr = $s1->get('ipAdEntAddr.0');
  116. #print("Ip address is : $ipaddr n");
  117. ok( defined($ipaddr));
  118. ##############################################
  119. #Test for a OID type
  120. $trapOID = $s1->get('snmpTrapOID.0');
  121. #print("trap OID is : $trapOID $s1->{ErrorStr}n");
  122. ok( defined($trapOID));
  123. ##############################################
  124. #Test for a Gauge type
  125. #$numusers = $s1->get('hrSystemNumUsers.0');
  126. #print("Number of users is : $numusers n");
  127. #ok( defined($numusers));
  128. ##############################################
  129. #nosuchname
  130. #Test for a date & time type
  131. #$datetime = $s1->get('hrFSLastFullBackupDate.0');
  132. #print("Number of users is : $datetime n");
  133. #ok( defined($datetime));
  134. ##############################################
  135. #nosuchname
  136. #Test for a Truth value type
  137. #$mode = $s1->get('ifPromiscuousMode.16');
  138. #print("Truth value(1 true, 2 false) is : $mode n");
  139. #ok( defined($mode));
  140. ##############################################
  141. # Time stamp test
  142. $time = $s1->get('sysORLastChange.0');
  143. #print("time stamp is : $time n");
  144. ok(defined($time));
  145. #############################################
  146. # Integer test
  147. #$index = $s1->get('sysORIndex.0');
  148. #print("index is : $indexn");
  149. #ok(defined($index));
  150. #############################################
  151. # OID test
  152. $oid = $s1->get('sysORID.1');
  153. #print("index is : $oidn");
  154. ok(defined($oid));
  155. #############################################
  156. # String test
  157. $descr = $s1->get('sysORDescr.1');
  158. #print("Sys Descr is : $descrn");
  159. ok(defined($descr));
  160. #############################################
  161. # string String test
  162. $ifname = $s1->get('ifDescr.1');
  163. #print("ifname is : $ifname $s1->{ErrorStr}n");
  164. ok(defined($ifname));
  165. #############################################
  166. # Try getting some unknown(wrong ?) data
  167. $unknown = $s1->get('ifmyData.0');
  168. ok(!defined($unknown));
  169. ##############################################
  170. snmptest_cleanup();