Visual C# 2015调用SnmpSharpNet库实现简单的SNMP元素查询

一开始调研发现有几个SNMP的库,

一个是net-SNMP,这个好像是linux用的多

一个是微软自己的WinSNMP,这个没有例子,不太好操作

一个是SnmpSharpNet,这个有些例子比较好,

利用SnmpSharpNet的例子实现读取udpindatagrams的代码如下:

要将SnmpSharpNet.dll放入Visual C# 2015的工程目录下,然后,在工程浏览器的引用里添加这个dll,方法见这里,引用,右键,添加引用,浏览到dll即可

 1 using System;
 2 using System.Net;
 3 using SnmpSharpNet;
 4
 5 namespace snmpget
 6 {
 7     class Program
 8     {
 9         static void Main(string[] args)
10         {
11             // SNMP community name
12             OctetString community = new OctetString("public");
13
14             // Define agent parameters class
15             AgentParameters param = new AgentParameters(community);
16             // Set SNMP version to 1 (or 2)
17             param.Version = SnmpVersion.Ver1;
18             // Construct the agent address object
19             // IpAddress class is easy to use here because
20             //  it will try to resolve constructor parameter if it doesn‘t
21             //  parse to an IP address
22             IpAddress agent = new IpAddress("192.168.0.10");
23
24             // Construct target
25             UdpTarget target = new UdpTarget((IPAddress)agent, 161, 2000, 1);
26
27             // Pdu class used for all requests
28             Pdu pdu = new Pdu(PduType.Get);
29             pdu.VbList.Add("1.3.6.1.2.1.7.1.0"); //udpindatagrams
30
31             // Make SNMP request
32             SnmpV1Packet result = (SnmpV1Packet)target.Request(pdu, param);
33
34             // If result is null then agent didn‘t reply or we couldn‘t parse the reply.
35             if (result != null)
36             {
37                 // ErrorStatus other then 0 is an error returned by
38                 // the Agent - see SnmpConstants for error definitions
39                 if (result.Pdu.ErrorStatus != 0)
40                 {
41                     // agent reported an error with the request
42                     Console.WriteLine("Error in SNMP reply. Error {0} index {1}",
43                         result.Pdu.ErrorStatus,
44                         result.Pdu.ErrorIndex);
45                 }
46                 else
47                 {
48                     // Reply variables are returned in the same order as they were added
49                     //  to the VbList
50                     Console.WriteLine("sysDescr({0}) ({1}): {2}",
51                         result.Pdu.VbList[0].Oid.ToString(),
52                         SnmpConstants.GetTypeName(result.Pdu.VbList[0].Value.Type),
53                         result.Pdu.VbList[0].Value.ToString());
54                 }
55             }
56             else
57             {
58                 Console.WriteLine("No response received from SNMP agent.");
59             }
60             target.Close();
61         }
62     }
63 }

输出结果如下:

发送和接收的包的wireshark截图:

get-request

get-response

接下来,需要看如何获取网络拓扑。。。

时间: 2024-08-10 01:44:34

Visual C# 2015调用SnmpSharpNet库实现简单的SNMP元素查询的相关文章

调用MyFocus库,简单实现二十几种轮播效果

一.首先点击这里下载myFocus库文件,标准文件库就行了,很小仅仅1.4M. myFocus库有以下的好处: a . 文件小巧却高效强大,能够实现二十几种轮播的效果. b . 极其简单的使用,只需要调用就可以使用,下面会介绍方法. c . 灵活的设置,很多参数可以提供设置,比如不想要文字提示,设置高度为0....更多参数适用请见网站教程页面. 二.下载下来之后,解压,看到一个文件夹,如下图所示: 对此文件夹进行一下说明:a . 打开js文件夹,然后有个js文件,就是我们最开始要调用的myfoc

在QQ群里有人提问有没有C语言的XML解析,偶然想到了这个问题:C++调用C库,简单试验:

我的电脑Mac,系统MaveRicks. 写一个C代码: #include<stdio.h> void hello(){ printf("Hello, this is from C Language ~\n"); } 编译一个库文件: franklinMacmini:~ git$ gcc --shared -o libhello.so hello.c franklinMacmini:~ git$ ll -tr drwx------+ 3 git staff 102 Sep

一个简单的C共享库的创建及python调用此库的方法

/*********************************************************************  * Author  : Samson  * Date    : 02/02/2015  * Test platform:  *              3.13.0-24-generic  *              GNU bash, 4.3.11(1)-release  * ************************************

C++调用C#库简单例程

有些时候,为了使用别人已经写好的C#库文件,我们需要使用C++调用C#库文件: 以下做了一简单的调用工程,步骤如下: 1.准备C#库 (dll文件) 1)创建C#库: 2)编写C#类: 3)配置C#库工程相关配置 (1)命名空间配置,输出库文件名配置: (2)库文件输出路径: 2.准备C++工程: 1)创建C++工程: 2)CLR支持(公共语言运行支持): 3)引用和调用C#代码: 4)编译直接运行: 5)运行调试: 3.其他补充说明: 1)为什么使用gcnew 而不使用 new ? C++/C

03_有监督学习--简单线性回归模型(调用 sklearn 库代码实现)

有监督学习--简单线性回归模型(调用 sklearn 库代码实现)0.引入依赖1.导入数据(data.csv)2.定义损失函数3.导入机器学习库 sklearn4.测试:运行算法,从训练好的模型中提取出系数和截距5.画出拟合曲线6.附录-测试数据 有监督学习--简单线性回归模型(调用 sklearn 库代码实现) 0.引入依赖 import numpy as npimport matplotlib.pyplot as plt 1.导入数据(data.csv) points = np.genfro

有感 Visual Studio 2015 RTM 简介 - 八年后回归 Dot Net,终于迎来了 Mvc 时代,盼走了 Web 窗体时代

有感 Visual Studio 2015 RTM 简介 - 八年后回归 Dot Net,终于迎来了 Mvc 时代,盼走了 Web 窗体时代 太阳火神的美丽人生 (http://blog.csdn.net/opengl_es) 本文遵循"署名-非商业用途-保持一致"创作公用协议 转载请保留此句:太阳火神的美丽人生 -  本博客专注于 敏捷开发及移动和物联设备研究:iOS.Android.Html5.Arduino.pcDuino,否则,出自本博客的文章拒绝转载或再转载,谢谢合作. 关于

Visual Studio 2015 和 Apache Cordova

原文:Visual Studio 2015 和 Apache Cordova 在开始前,问一下自己下面这些问题: 熟练掌握web技术的开发者比例是多少?(占所有开发者的比例) 熟练掌握移动开发技术(并且使用跨平台开发工具)的开发者比例是多少? 熟练掌握web技术和移动开发技术的开发者比例是多少? 在以上的开发者中,能够胜任跨移动平台开发的开发者比例又是多少? 由于学习时间和职业范围限制,最后一个问题中符合条件的开发者,少之又少.事实上,在就业市场很少有公司招聘那些多面手(掌握很多技术的人),因为

Visual Studio 2015 的安装与使用

为什么要使用Visual Studio 2015? 它是中文的.界面友好.自动补全.实时语法错误提示(上图中波浪线部分).单步调试--最重要的社区版是免费的!所以你不必再昧着良心使用不合法.老旧的不兼容当代系统的VC++6.0,Come to VS2015 and enjoy it! 接下来我将告诉你如何安装以及使用它编写.运行C/C++程序! ? 获得Visual Studio 2015 进入Visual Studio 官方网站,点击"下载Visual Studio社区". 如果一切

Visual Studio 2015+CUDA8.0+CUDNN5配置Caffe-windows(BLVC)

综合  来源:Angle_Cal  2016-12-19 17:32  624℃  0评论 BLVC版本的Caffe-windows已经支持Visual Studio 2015,下面的配置过程是综合了其他人的经验而且验证过的,可以确保有效. 下载Caffe-Windows(BLVC) 下载地址:GitHub 下载好解压缩即可. 安装VS2015,CUDA,CUDNN,Anaconda,CMake VS2015 安装请自行完成,需要注意的是: ①如果你以前安装有早起的VS,那么安装VS2015可能