免费注册 查看新帖 |

Chinaunix

  平台 论坛 博客 文库
最近访问板块 发新帖
查看: 5337 | 回复: 7
打印 上一主题 下一主题

snmp4j问题,急! [复制链接]

论坛徽章:
0
跳转到指定楼层
1 [收藏(0)] [报告]
发表于 2007-01-03 17:26 |只看该作者 |倒序浏览
我想使用snmp4j与设备通信,是不是首先要知道snmp的版本,和oid,oid怎么获取
           String ip = "192.168.100.1";
           Address targetAddress = GenericAddress.parse("udp:" + ip + "/161");
            log.debug("ip"+ip);
            TransportMapping transport;
            transport = new DefaultUdpTransportMapping();
            Snmp snmp = new Snmp(transport);
            transport.listen();
            CommunityTarget target = new CommunityTarget();
            target.setCommunity(new OctetString("public"));
            target.setAddress(targetAddress);
            target.setRetries(2);
            target.setTimeout(1000);
            target.setVersion(SnmpConstants.version1);
            // creating PDU
            PDU pdu = new PDU();

            String oidPrefix = "1.3.6.1.2.1.1.1";
            pdu.add(new VariableBinding(new OID(oidPrefix )));
            pdu.setType(PDU.GET);

            ResponseEvent event = snmp.send(pdu, target);
            PDU resposePDU = event.getResponse();
     
            Vector result = resposePDU.getVariableBindings();
            VariableBinding vb = (VariableBinding) result.get(0);
            String sID = vb.getVariable().toString();
            log.debug("sID"+sID);

这样取对不对,为什么每次result 中的值都是空的,有做过的兄弟给个例子吧,多谢了

论坛徽章:
0
2 [报告]
发表于 2007-07-10 16:35 |只看该作者
我也碰到类似的问题
请问楼主有解决吗?

论坛徽章:
0
3 [报告]
发表于 2007-07-11 15:57 |只看该作者
String oidPrefix = "1.3.6.1.2.1.1.1";

改成String oidPrefix = "1.3.6.1.2.1.1.1.0";

试试

论坛徽章:
0
4 [报告]
发表于 2007-07-11 21:03 |只看该作者
没见你处理节点呀!
楼上的回答不是问题的关键.
节点是否支持带.0是程序实现的. 你可以带,也可以不带, 只要你的agent端支持就行了.

下载一下SNMP4J的源代码,里面有示例代码.
看了一下你的代码,好像只是编译不出错而已.

[ 本帖最后由 chouy 于 2007-7-11 21:28 编辑 ]

论坛徽章:
0
5 [报告]
发表于 2007-07-11 21:58 |只看该作者
这个变量是一个标量,lz用的是get方法,当然需要加.0了,如果不加.0,agent会认为没有这个变量

论坛徽章:
0
6 [报告]
发表于 2007-07-12 08:56 |只看该作者
看来还挺多人用snmp4j嘛,前几天害得我琢磨了好久~~~

论坛徽章:
0
7 [报告]
发表于 2007-07-12 08:57 |只看该作者
原帖由 chouy 于 2007-7-11 21:03 发表
没见你处理节点呀!
楼上的回答不是问题的关键.
节点是否支持带.0是程序实现的. 你可以带,也可以不带, 只要你的agent端支持就行了.

下载一下SNMP4J的源代码,里面有示例代码.
看了一下你的代码,好像只是编译 ...


请问你说的处理节点是什么意思呢?
能否说清楚一点

论坛徽章:
0
8 [报告]
发表于 2007-07-12 16:10 |只看该作者
Snmp snmp = new Snmp(transport);
            transport.listen();
改成snmp.listen();
您需要登录后才可以回帖 登录 | 注册

本版积分规则 发表回复

  

北京盛拓优讯信息技术有限公司. 版权所有 京ICP备16024965号-6 北京市公安局海淀分局网监中心备案编号:11010802020122 niuxiaotong@pcpop.com 17352615567
未成年举报专区
中国互联网协会会员  联系我们:huangweiwei@itpub.net
感谢所有关心和支持过ChinaUnix的朋友们 转载本站内容请注明原作者名及出处

清除 Cookies - ChinaUnix - Archiver - WAP - TOP