SNMP set
The SnmpSet class looks very similar to the SnmpWalk class. As with the SnmpWalk class, _pduType is set to the appropriate SNMP operation we plan to perform:
private int _pduType = PDU.SET;
We've introduced a doSet() method that operates in a similar manner to the doWalk() method of the SnmpWalk class. An SNMP set has the following components:
An OID
The syntax for the OID
A new or different value you wish the OID to take on in the target's SNMP stack
The difference between these classes lies in that third element, the new value you are setting to.
Let's look at the Main class, which uses SnmpSet:
public class Main{
public Main(){
}
public static void main(String[] args){
System.out.println("Doing SNMPv2 set..");
SnmpSet set = new SnmpSet("127.0.0.1",
"1.3.6.1.2.1.1.6.0={s}Right here, right
now.");
set.doSet();
System.out.println("Doing SNMPv3 set..");
set = new SnmpSet("127.0.0.1",
"1.3.6.1.2.1.1.6.0={s}Some place else..",
"kschmidt","MD5","mysecretpass","DES","mypassphrase");
set.doSet();
}
}The notation we are using to specify the OID, syntax, and value is the same as the notation for the SNMP4J command-line tool. It has the following format:
OID={syntax}value_for_OID
Table 14-1 lists the different values that syntax can take on, along with the corresponding SNMP4J class that is used to encode value_for_OID into that type.
Table 14-1. Syntax values with SNMP4J class names
|
Syntax value |
SNMP4J class |
Meaning |
|---|---|---|
|
i |
Integer32 |
Signed 32-bit integer |
|
u |
UnsignedInteger32 |
Unsigned ... |