[SNMP4J] Network Discovery

James Prickett jprickett at force3.com
Wed Aug 25 18:04:13 CEST 2010


I'm trying to programmatically turn off a port on a switch using the SNMP4J library and I'm stuck on the following error:

org.snmp4j.transport.UnsupportedAddressClassException: Unsupported address class (transport mapping): org.snmp4j.smi.IpAddress
	at org.snmp4j.MessageDispatcherImpl.sendPdu(MessageDispatcherImpl.java:413)
	at org.snmp4j.Snmp.sendMessage(Snmp.java:1067)
	at org.snmp4j.Snmp.send(Snmp.java:895)
	at org.snmp4j.Snmp.send(Snmp.java:875)
	at org.snmp4j.Snmp.send(Snmp.java:840)
	at com.force3.snmp.SnmpExample.main(SnmpExample.java:51)

I get the same exception using the TcpAddresss class as well.

Anyone have a clue what I should be using to specify the address?

Regards,
James






Code -->

---------------------------------------------------------
package example;

import java.io.IOException;

import org.snmp4j.PDU;
import org.snmp4j.ScopedPDU;
import org.snmp4j.Snmp;
import org.snmp4j.UserTarget;
import org.snmp4j.event.ResponseEvent;
import org.snmp4j.mp.SnmpConstants;
import org.snmp4j.security.SecurityLevel;
import org.snmp4j.smi.IpAddress;
import org.snmp4j.smi.OID;
import org.snmp4j.smi.OctetString;
import org.snmp4j.smi.TcpAddress;
import org.snmp4j.smi.UdpAddress;
import org.snmp4j.smi.VariableBinding;
import org.snmp4j.transport.DefaultUdpTransportMapping;

/**
 * 
 */
public class SnmpExample {

	// private static final OctetString UP = new OctetString("1");
	private static final OctetString DOWN = new OctetString("2");

	/**
	 * @param args
	 *          The command-line arguments
	 */
	public static void main(String[] args) {

		PDU pdu = new ScopedPDU();
		pdu.setType(PDU.SET);
		VariableBinding vb = new VariableBinding(new OID("1.3.6.1.2.1.2.2.1.7"), DOWN);
		pdu.add(vb);

		UserTarget target = new UserTarget();
		target.setAddress(new IpAddress("10.10.0.2"));
		target.setVersion(SnmpConstants.version3);
		target.setRetries(1);
		target.setTimeout(500);
		target.setSecurityLevel(SecurityLevel.AUTH_PRIV);
		target.setSecurityName(new OctetString("MD5DES"));

		try {
			Snmp snmp = new Snmp(new DefaultUdpTransportMapping());
			snmp.listen();
			ResponseEvent response = snmp.send(pdu, target);
			if (response.getResponse() != null) {
				System.out.println(response.getResponse().toString());
			}
		} catch (IOException e) {
			e.printStackTrace();
			System.exit(99);
		}

	}

}



More information about the SNMP4J mailing list