一小段用SNMP4J读取OID的代码,请大家给看看,为啥运行的时候返回的是两个null啊?protocol.send()这个函数没有把值传给response?是不是还要有agent端之类的,或者是mib文件要放在什么固定的位置?请明白人给小妹分析一下吧,谢谢了 import org.snmp4j.*;
import org.snmp4j.transport.*;
import java.io.*;
import org.snmp4j.smi.*;
import org.snmp4j.mp.*;
import org.snmp4j.event.*;class snmptest{
public static void main(String[] args){
try{
TransportMapping transport1 ;
transport1 = new DefaultUdpTransportMapping();
Snmp protocol = new Snmp(transport1);
transport1.listen();
CommunityTarget myTarget = new CommunityTarget();//agent对象
Address deviceAdd;//org.snmp4j.smi.*;
deviceAdd = GenericAddress.parse("udp:192.168.100.211/161");//设置IP地址和端口号
myTarget.setAddress(deviceAdd
myTarget.setCommunity(new OctetString("public"));//设置共同体名
myTarget.setRetries(0);//设置重试次数
myTarget.setTimeout(5*60); //设置超时
myTarget.setVersion(SnmpConstants.version2c);//org.snmp4j.mp.*;
PDU pdu = new PDU();//new request PDU包
VariableBinding var = new VariableBinding(new OID("1.3.6.1.4.1.9.2.1.8.0"));
pdu.add(var);//OID添加
pdu.setType(PDU.GET);//设置PDU类型,
ResponseEvent response = protocol.send(pdu, myTarget);//发出request PDU
System.out.println(response.getResponse());
System.out.println(response.getPeerAddress()); }catch(IOException e){
e.printStackTrace();
System.out.println(e.getMessage()); return;
}
}
}
import org.snmp4j.transport.*;
import java.io.*;
import org.snmp4j.smi.*;
import org.snmp4j.mp.*;
import org.snmp4j.event.*;class snmptest{
public static void main(String[] args){
try{
TransportMapping transport1 ;
transport1 = new DefaultUdpTransportMapping();
Snmp protocol = new Snmp(transport1);
transport1.listen();
CommunityTarget myTarget = new CommunityTarget();//agent对象
Address deviceAdd;//org.snmp4j.smi.*;
deviceAdd = GenericAddress.parse("udp:192.168.100.211/161");//设置IP地址和端口号
myTarget.setAddress(deviceAdd
myTarget.setCommunity(new OctetString("public"));//设置共同体名
myTarget.setRetries(0);//设置重试次数
myTarget.setTimeout(5*60); //设置超时
myTarget.setVersion(SnmpConstants.version2c);//org.snmp4j.mp.*;
PDU pdu = new PDU();//new request PDU包
VariableBinding var = new VariableBinding(new OID("1.3.6.1.4.1.9.2.1.8.0"));
pdu.add(var);//OID添加
pdu.setType(PDU.GET);//设置PDU类型,
ResponseEvent response = protocol.send(pdu, myTarget);//发出request PDU
System.out.println(response.getResponse());
System.out.println(response.getPeerAddress()); }catch(IOException e){
e.printStackTrace();
System.out.println(e.getMessage()); return;
}
}
}
解决方案 »
免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货