天天看點

Snmp4j程式設計簡介之一:Target

關于Snmp4j包,最重要三個概念,也是三個類:Snmp、Target、PDU。

    Target,表示被管理的裝置。對于一個被管理的裝置,我們關注它的Address,它使用的協定版本version,通路它的使用者名和密碼、以及對這個裝置我們設定跟它打交道的一些政策,比如逾時時間、重傳次數等。是以有如下方法:

    1)擷取或者設定ip位址

    void setAddress(Address address)  

    Address getAddress()

    2)設定或者擷取版本号(支援V1,V2c,V3)

    void setVersion(int ver)

    int   getVersion()

    3)逾時時間 ( 機關:milliseconds )

    void   setTimeout(long out)

    long getTimeout()

    4)重傳次數

    void   setRetries(int retries)

    int   getRetries()

    5)最大PDU大小值

    void setMaxSizeRequestPDU(int max)

    int   getMaxSizeRequestPDU()

    上面這些對于Snmp三個版本都是相同的,不同的隻是在于安全方面,具體來說,Snmpv1,v2c采用共同體(community)方式,安全性很差;SnmpV3采用基于使用者的安全(USM)方式,安全性能得到很大提高。

   (1) 對于Snmpv1,v2c,使用Target派生出一個子類CommunityTarget,增加了對Community的方法:

        void setCommunity(OctetString community)

        OctetString getCommunity()

    (2)對于SnmpV3,使用其子類UserTarget,增加了一些有關USM安全方面的設定,比如采用的安全模型、安全級别、通路該裝置的使用者名以及權威引擎ID(authoritative engine ID):

       i)安全級别(支援三種安全級别)

       void setSecurityLevel(int level)

       int   getSecurityLevel()

       ii)通路使用者名(該通路使用者名稱必須在設定USM的時候添加其相應的UsmUser)

       void setSecurityName(OctetString name)

       OctetString   getSecurityName()

       iii)安全模型(支援三種安全模型)

       void setSecurityModel(int model)

       int   getSecurityModel()

       V)權威引擎ID(authoritative engine ID)

       void   setAuthoritativeEngineID(byte[] id)

       byte[] getAuthoritativeEngineID()

對于Target的代碼大緻如下:(摘自Snmp4j的說明文檔)

 •Community Target CommunityTarget target = new CommunityTarget();

target.setCommunity(new OctetString("public"));

target.setAddress(targetAddress);

target.setVersion(SnmpConstants.version1);

•User Target UserTarget target = new UserTarget();

target.setAddress(targetAddress);

target.setRetries(1);

// set timeout to 500 milliseconds -> 2*500ms = 1s total timeout

target.setTimeout(500);

target.setVersion(SnmpConstants.version3);

target.setSecurityLevel(SecurityLevel.AUTH_PRIV);

target.setSecurityName(new OctetString("MD5DES"));

本文來自CSDN部落格,轉載請标明出處:http://blog.csdn.net/xuantian868/archive/2008/09/05/2886030.aspx