snmp4j 编程
从www.snmp4j.org下载snmp4j的jar包,用eclipse新建一个java项目。将jar包导入工程(只有一个jar包),开始编程
一个简单的测试程序
//create target
//create pdu
//snmp.send
okay,上代码
package com.gxf.snmp; import java.io.IOException; import org.snmp4j.CommunityTarget;
import org.snmp4j.PDU;
import org.snmp4j.Snmp;
import org.snmp4j.TransportMapping;
import org.snmp4j.event.ResponseEvent;
import org.snmp4j.mp.SnmpConstants;
import org.snmp4j.smi.Address;
import org.snmp4j.smi.GenericAddress;
import org.snmp4j.smi.OID;
import org.snmp4j.smi.OctetString;
import org.snmp4j.smi.Variable;
import org.snmp4j.smi.VariableBinding;
import org.snmp4j.transport.DefaultUdpTransportMapping; //create target
//create pdu
//snmp send public class SNMP { public static void main(String[] args) {
//create target
Address address = GenericAddress.parse("udp:210.38.235.186/161");
CommunityTarget target = new CommunityTarget(); target.setCommunity(new OctetString("public"));
target.setAddress(address);
target.setTimeout(10000);//10s
target.setVersion(SnmpConstants.version2c);
//create pdu
PDU pduSet = createSetPdu();
PDU pudGet = createGetPdu(); sendPdu(pudGet, target);
sendPdu(pduSet, target);
sendPdu(pudGet, target); }
//1.3.6.1.2.1.1.5.0 sysName
//create set pdu
public static PDU createSetPdu(){
PDU pduReturn = new PDU(); pduReturn.setType(PDU.SET);
VariableBinding variable = new VariableBinding(new OID("1.3.6.1.2.1.1.5.0"), new OctetString("testname"));
pduReturn.add(variable); return pduReturn;
}
//create get pdu
public static PDU createGetPdu(){
PDU pduReturn = new PDU(); pduReturn.setType(PDU.GET);
VariableBinding variableBinding = new VariableBinding(new OID("1.3.6.1.2.1.1.5.0"));
pduReturn.add(variableBinding); return pduReturn;
}
//send pdu
public static void sendPdu(PDU pdu, CommunityTarget communityTarget){
try {
TransportMapping transportMapping = new DefaultUdpTransportMapping();
transportMapping.listen();
Snmp snmp = new Snmp(transportMapping); ResponseEvent responseEvent = snmp.send(pdu, communityTarget);
//get reponse pdu
if(null != responseEvent){
PDU pduResponse = responseEvent.getResponse();
System.out.println("size : " + pduResponse.size());
for(int i = 0; i < pduResponse.size(); i++){
VariableBinding variableBinding = pduResponse.get(i);
Variable variable = variableBinding.getVariable();
System.out.println(variable.toString());
}
System.out.println("error:" + pduResponse.getErrorStatusText());
}
else{
System.out.println("timeout ...");
}
} catch (IOException e) { e.printStackTrace();
System.out.println(e.getMessage());
} }
}
snmp4j 编程的更多相关文章
- Snmp学习总结(七)——SNMP4J介绍
一.SNMP4J介绍 SNMP4J是一个用Java来实现SNMP(简单网络管理协议)协议的开源项目.它支持以命令行的形式进行管理与响应.SNMP4J是纯面向对象设计与SNMP++(用C++实现SNMP ...
- SNMP学习笔记之SNMP4J介绍(Java)
0x00 SNMP4J介绍 SNMP4J是一个用Java来实现SNMP(简单网络管理协议)协议的开源项目.它支持以命令行的形式进行管理与响应.SNMP4J是纯面向对象设计与SNMP++(用C++实现S ...
- SNMP4J 总结
一.SNMP4J介绍 SNMP4J是一个用Java来实现SNMP(简单网络管理协议)协议的开源项目.它支持以命令行的形式进行管理与响应.SNMP4J是纯面向对象设计与SNMP++(用C++实现SNMP ...
- 从直播编程到直播教育:LiveEdu.tv开启多元化的在线学习直播时代
2015年9月,一个叫Livecoding.tv的网站在互联网上引起了编程界的注意.缘于Pingwest品玩的一位编辑在上网时无意中发现了这个网站,并写了一篇文章<一个比直播睡觉更奇怪的网站:直 ...
- JavaScript之父Brendan Eich,Clojure 创建者Rich Hickey,Python创建者Van Rossum等编程大牛对程序员的职业建议
软件开发是现时很火的职业.据美国劳动局发布的一项统计数据显示,从2014年至2024年,美国就业市场对开发人员的需求量将增长17%,而这个增长率比起所有职业的平均需求量高出了7%.很多人年轻人会选择编 ...
- 读书笔记:JavaScript DOM 编程艺术(第二版)
读完还是能学到很多的基础知识,这里记录下,方便回顾与及时查阅. 内容也有自己的一些补充. JavaScript DOM 编程艺术(第二版) 1.JavaScript简史 JavaScript由Nets ...
- [ 高并发]Java高并发编程系列第二篇--线程同步
高并发,听起来高大上的一个词汇,在身处于互联网潮的社会大趋势下,高并发赋予了更多的传奇色彩.首先,我们可以看到很多招聘中,会提到有高并发项目者优先.高并发,意味着,你的前雇主,有很大的业务层面的需求, ...
- C#异步编程(一)
异步编程简介 前言 本人学习.Net两年有余,是第一次写博客,虽然写的很认真,当毕竟是第一次,肯定会有很多不足之处, 希望大家照顾照顾新人,有错误之处可以指出来,我会虚心接受的. 何谓异步 与同步相对 ...
- UE4新手之编程指南
虚幻引擎4为程序员提供了两套工具集,可共同使用来加速开发的工作流程. 新的游戏类.Slate和Canvas用户接口元素以及编辑器功能可以使用C++语言来编写,并且在使用Visual Studio 或 ...
随机推荐
- chkdsk 和sfc.exe修复命令
1:chkdsk:chkdsk的全称是checkdisk,就是磁盘检查. CMD->help chkdsk CHKDSK [volume[[path]filename]]] [/F] [/V] ...
- sed的惯常用法
1:注释掉某一行这个经常会遇到的,把配置文件里某一行注释掉.让他不起作用.sed -i -e ’121 s/^/#/’ /usr/local/apache2/conf/httpd.conf上面一行命令 ...
- grub丢失的修复
使用安装光盘进入rescure模式,经过配置后进入一个bashbash# grubgrub> root (hd0,6)grub> setup (hd0)重启即可
- 使用C#三维绘图控件快速搭建DXF查看程序
本例使用AnyCAD .Net三维图形控件快速实现一个DXF文件的读取.显示.导出JPG.PNG.PDF的应用. 代码: using System; using System.Collections. ...
- wpf常见枚举收集
Icons made by from www.flaticon.com
- Linux文件和目录管理常用重要命令
一.目录与路径 1.相对路径与绝对路径 因为我们在Linux系统中,常常要涉及到目录的切换,所以我们必须要了解 "路径" 以及 "相对路径" 与 "绝 ...
- Oracle登录时提示错误,导致用户无法登录
Oracle登录时提示错误,导致用户无法登录,错误如下 ------------------------------------------------------------------------ ...
- 第一节 MongoDB介绍及下载与安装
引言 MongoDB是一个介于关系数据库和非关系数据库之间的产品,是非关系数据库当中功能最丰富,最像关系数据库的.他支持的数据结构非常松散,是类似json的bjson格式,因此可以存储比较复杂的数据类 ...
- c#判断网络连接状态示例代码
使用c#判断网络连接状态的代码. 代码: public partial class Form1 : Form { [DllImport() == true) { label1.Text = " ...
- ok6410串口裸机总结
1.串口角色:(1)数据传输通道(2)控制台 2.通讯参数(1)波特率:衡量传输速率的快慢,每秒钟传输数据的位数(bit)(2)数据位:有效数据(3)起始位:线路空闲的时候是高电平,当检测到低电平认为 ...