success_32功能的設(shè)計和實現(xiàn)_第1頁
success_32功能的設(shè)計和實現(xiàn)_第2頁
success_32功能的設(shè)計和實現(xiàn)_第3頁
success_32功能的設(shè)計和實現(xiàn)_第4頁
success_32功能的設(shè)計和實現(xiàn)_第5頁
已閱讀5頁,還剩8頁未讀 繼續(xù)免費閱讀

下載本文檔

版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進行舉報或認領(lǐng)

文檔簡介

1、3.2功能的設(shè)計和實現(xiàn): 下面主要是詳細三個功能程序,第一是SnmpGet.java,第二是SnmpGetTable.jav第三個是SnmpGetTable_one.java。下面就是程序的具體介紹,實現(xiàn)及結(jié)果示:3.2.1 SnmpGet.java 這個程序主要的功能是取路由器和交換機的單個值的信息,這個程序的實現(xiàn)主要是用到了SNMP軟件包中的SnmpTarget類,這個可以在AdventNetSnmp軟件包的com.adventnet.snmp.beans中可以找到,這個程序主要調(diào)用了setTargetHost()方法,setObjectID()方法,snmpGet(),getErrorS

2、tring(),其中setTargetHost()主要是用來設(shè)置采集路由器或交換機的IP地址,而setObjectID( )是用來設(shè)置采集對象的OID即標識,這個標識從AdventNet SNMP API 4中的MIB BROWSER 查到,在安裝環(huán)境中已經(jīng)介紹過,snmpGet()方法執(zhí)行g(shù)et操作,而getErrorString()是返回錯誤信息。程序流圖: 源代碼:SnmpGet.java import com.adventnet.snmp.beans.*;public class SnmpGet public static void main(String args) / 初始化一個S

3、NMP target 實體或者說是一個對象SnmpTarget target = new SnmpTarget();/ 設(shè)置運行SNMP代理的主機的IP地址target.setTargetHost(x2.y2.y1.x1);/ 設(shè)置對象標識OID(在原來的OID加上.0 這是語法的規(guī)定) target.setObjectID(.1.3.6.1.2.1.4.3.0);/ 執(zhí)行一個GET請求String result = target.snmpGet(); if (result = null) /如果result是空的,說明請求失敗,打印錯誤信息 System.err.println(Reques

4、t failed or timed out. n+ target.getErrorString(); /如果成功的話,打印接收到對象的值else / print the values System.out.println(Response received. Value: + result);System.exit(0);程序的執(zhí)行和結(jié)果:C:j2sdk1.4.2java SnmpGetResponse received. Value:160044C:j2sdk1.4.2javac SnmpGet.java /編譯源程序成字節(jié)碼文件C:j2sdk1.4.2java SnmpGet /運行程序R

5、esponse received. Value:7 days, 2 hours, 30 minutes, 22 seconds /結(jié)果.C:j2sdk1.4.2javac SnmpGet.javaC:j2sdk1.4.2java SnmpGetResponse received. Value:28C:j2sdk1.4.2javac SnmpGet.javaC:j2sdk1.4.2java SnmpGetRequest failed or timed out. /這是OID錯誤,不存在這樣的OID,就出Response PDU received from 210.43.y1.x1 /這樣的錯誤E

6、rror Indication in response:There is no such variable name in this mib.Errindex: 1C:j2sdk1.4.2javac SnmpGet.javaC:j2sdk1.4.2java SnmpGetResponse received. Value:wyx_3524C:j2sdk1.4.2javac SnmpGet.javaC:j2sdk1.4.2java SnmpGetResponse received. Value:1600493.2.2 SnmpGetTable_one.java這個程序主要實現(xiàn)的功能是取MIB信息庫

7、的表的信息,而且表的信息可以有選擇的提取,不是整個表不率選全部取出。主要使用的類是SnmpTable類,其中使用的到方法有setTargetHost(),loadMibs(),setTableOID(),getColumnName(),getColumnCount(),getRowCount(),getValueAt(i,j),其中setTargetHost方法同上面的一樣用來設(shè)置存放的信息路由器或交換機的IP,LoadMibs()這個方法很重要,它是用來加載Mib模型,它的參數(shù)就是本地上的MIB模型庫的確切路徑,本程序MIB模型庫是在AdventNet SNMP API 4安裝目錄中,例如你

8、把這個軟件裝在C:盤并命名為snmp,我們要加載的信息庫是RFC1213,則它的路徑為C:SnmpAdventNetSNMPAPImibsRFC1213-MIB 。setTableOID()是設(shè)置要采信息表的OID,getColumnCount()是為了返回表列的數(shù)量,getColumnName()就是取得表列的名字,getRowCount()是返回表行數(shù)。流程圖:源代碼:SnmpGetTable_one.Javaimport com.adventnet.snmp.beans.*;public class SnmpGetTable_one public static void main(Str

9、ing args) /如果不輸入兩個參數(shù)的話,這個線程就會退出,不在執(zhí)行,并作出提示if (args.length 2) System.out.println (Usage : java SnmpGetTable_one hostname tableoid ); System.exit (0); /分別把參數(shù)1,和參數(shù)2賦給remoteHost,tableoid兩個變量 String remoteHost = args0; String tableoid = args1;/創(chuàng)建一個SnmpTable實例SnmpTable table = new SnmpTable();/設(shè)置ip地址table

10、.setTargetHost(remoteHost);/加載MIB信息庫的模型和設(shè)置表的OID 加載失敗的話則拋出異常try table.loadMibs(C:SnmpAdventNetSNMPAPImibsRFC1213-MIB);table.setTableOID(tableoid);catch (Exception ex) System.out.println(Getting table. Table items:); /定義一個字符緩沖區(qū)StringBuffer sb = new StringBuffer();try Thread.sleep(10000); / 線程休眠10秒,cat

11、ch (InterruptedException ex) /把表要得列的名字放入sb字符緩沖區(qū)中for (int i=0;itable.getColumnCount();i+) switch(i)case 0:;case 1:;case 4:;case 9:;case 10:sb.append(table.getColumnName(i)+ t); /打印出表的列的名字System.out.println(sb.toString();/定義一個字符緩沖區(qū)StringBuffer sb2 = new StringBuffer();/按照從行到列把表中的數(shù)據(jù)項放入到字符緩沖區(qū)中 for (int

12、j=0;jtable.getRowCount();j+) for (int i=0;ijava SnmpGetTable_one x1.y1.x2.y2 .1.3.6.1.2.1.2.2 /外語學院ifIndex ifDescr ifSpeed ifInOctets ifInUcastPkts1 VLAN1 10000000 201691948 20272 FastEthernet0/1 0 64 13 FastEthernet0/2 0 64 14 FastEthernet0/3 0 64 15 FastEthernet0/4 0 4045131 359706 FastEthernet0/5

13、 0 64 17 FastEthernet0/6 100000000 8328498 1047198 FastEthernet0/7 0 0 09 FastEthernet0/8 0 0 010 FastEthernet0/9 0 64 111 FastEthernet0/10 0 64 112 FastEthernet0/11 0 64 113 FastEthernet0/12 100000000 46470857 18097114 FastEthernet0/13 0 64 115 FastEthernet0/14 0 64 116 FastEthernet0/15 0 64 117 Fa

14、stEthernet0/16 0 302290 193318 FastEthernet0/17 100000000 101932190 28310919 FastEthernet0/18 0 64 120 FastEthernet0/19 100000000 14053304 10539021 FastEthernet0/20 0 17335834 22464122 FastEthernet0/21 0 64 123 FastEthernet0/22 0 64 124 FastEthernet0/23 0 1245069 838125 FastEthernet0/24 100000000 11

15、0551378 157691826 GigabitEthernet0/1 1000000000 2915872038 320220227 GigabitEthernet0/2 0 448 728 Null0 4294967295 0 0C:j2sdk1.4.2java SnmpGetTable_one x2.y2.x1.y1 .1.3.6.1.2.1.2.2 /計算機學院Getting table. Table items:ifIndex ifDescr ifSpeed ifInOctets ifInUcastPkts1 VLAN1 10000000 332819953 15022 FastE

16、thernet0/1 0 64 13 FastEthernet0/2 0 303678 894 FastEthernet0/3 100000000 4216830815 77632325 FastEthernet0/4 0 64 16 FastEthernet0/5 100000000 22347015 1333537 FastEthernet0/6 0 64 18 FastEthernet0/7 0 4519916 411979 FastEthernet0/8 100000000 446833110 183602810 FastEthernet0/9 10000000 2850364540

17、1075956211 FastEthernet0/10 0 64 112 FastEthernet0/11 10000000 4135680672 1244683313 FastEthernet0/12 0 64 114 FastEthernet0/13 0 64 115 FastEthernet0/14 0 64 116 FastEthernet0/15 0 64 117 FastEthernet0/16 0 64 118 FastEthernet0/17 0 18464290 6687019 FastEthernet0/18 100000000 1234627688 1818745920

18、FastEthernet0/19 0 64 121 FastEthernet0/20 0 64 122 FastEthernet0/21 0 64 123 FastEthernet0/22 0 64 124 FastEthernet0/23 100000000 1851235 825 FastEthernet0/24 0 64 126 FastEthernet0/25 0 64 127 FastEthernet0/26 0 64 128 FastEthernet0/27 0 64 129 FastEthernet0/28 0 64 130 FastEthernet0/29 100000000 7250907 4231431 FastEthernet0/30 0 64 132 FastEthernet0/31 100000000 431063150 133053833 FastEthernet0/32 0 64 134 FastEthernet0/33 100000000 856457465 2883365535 FastEthernet0/34 0 64 136

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負責。
  • 6. 下載文件中如有侵權(quán)或不適當內(nèi)容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論