专业级的SNMP框架---SNMP4J
时间:2010-11-23 来源:zhengdong1987
专业级的SNMP框架---SNMP4J
- SNMP4J简介
- SNMP4J基本GET和GETNEXT功能
注:出于简化,本例去掉了SNMPV3的支持,以下代码只支持SNMPV1和SNMPV2C
public class Snmp4JHelper { public static Snmp createSnmpSession(Address address) throws IOException { // new TransportMapping object AbstractTransportMapping transport; if (address instanceof TcpAddress) { transport = new DefaultTcpTransportMapping(); } else { transport = new DefaultUdpTransportMapping(); } // new Snmp object Snmp snmp = new Snmp(transport); return snmp; } |
public static Target createTarget(Address address,OctetString community) { CommunityTarget target = new CommunityTarget(); target.setAddress(address); target.setCommunity(community); return target; } |
public static PDU createPDU(int pduType) { PDU request; if (pduType == PDU.V1TRAP) { request = new PDUv1(); } else { request = new PDU(); } request.setType(pduType); return request; } |
public static OctetString createOctetString(String s) { OctetString octetString; if (s.startsWith("0x")) { octetString = OctetString.fromHexString(s.substring(2), ':'); } else { octetString = new OctetString(s); } return octetString; } |
public static Address getAddress(String transportAddress) { // 如果有冒号存在,就是"udp:xxx.xxx.xxx.xxx"的格式,分离出协议和地址 int colon = transportAddress.indexOf(':'); String transprotocol = "udp"; if (colon > 0) { transprotocol = transportAddress.substring(0, colon); transportAddress = transportAddress.substring(colon+1); } // append default port follow end of transportAddress if (transportAddress.indexOf('/') < 0) { transportAddress += "/161"; } if (transprotocol.equalsIgnoreCase("udp")) { retur |
相关阅读 更多 +