c# - SharpSnmpLib SendTrap

标签 c# snmp sharp-snmp snmp-trap

我用 C# 创建了这个按钮:

private void sendTrapBtn_Click(object sender, EventArgs e)
{
    Messenger.SendTrapV1(new IPEndPoint(IPAddress.Parse("172.29.16.200"), 162), 
             IPAddress.Parse("172.29.16.203"), // my machine 
             new OctetString("MNTCORPRD"),
             new ObjectIdentifier("1.3.6.1.4.1.791"), 
             0, 
             0, 
             0, 
             new List<Variable>());
}

我可以看到我可以选择提交者IP、目标IP、SNMP社区字符串、企业OID、通用OID、特定OID,但我不知道如何使用变量列表将OID嵌入一些信息像:

OID: 1.3.6.1.4.1.791.0.1.4.1 Type: Integer Data: 2345
OID: 1.3.6.1.4.1.791.0.1.4.2 Type: String Data: "DB Error occurred"

收到的陷阱示例。

Trap identifier 1.3.6.1.4.1.791.2.10.2.90.6.1
Trap var bind data: 
OID: 1.3.6.1.4.1.791.2.10.2.90.0 Value: application Process
OID: 1.3.6.1.4.1.791.2.10.2.90.1 Value: Cluster.exe
OID: 1.3.6.1.4.1.791.2.10.2.90.2 Value: Running

我怎样才能做到这一点?一个例子就足够了!

最佳答案

我通过自己的测试找到了答案,我将分享这些知识!

要在陷阱中创建 varbind 变量,您需要首先创建 Lextm.SharpSnmpLib.Variable。

创建列表并发送陷阱后。

Lextm.SharpSnmpLib.Variable oid = new Lextm.SharpSnmpLib.Variable(new ObjectIdentifier("1.3.6.1.4.1.9999.0.0.1"),new OctetString("Cluster.exe"));

List<Variable> oidList = new List<Variable>();

oidList.Add(oid);

Messenger.SendTrapV1(new IPEndPoint(IPAddress.Parse("172.29.16.200"), 162),
                     IPAddress.Parse("172.29.16.20"), // my machine 
                     new OctetString("MNTCORPR"),
                     new ObjectIdentifier("1.3.6.1.4.1.9999"), 
                     0, 
                     0, 
                     0, 
                     oidList);

关于c# - SharpSnmpLib SendTrap,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/32407903/

相关文章:

c# - 为什么这个while循环是一个无限循环?

c# - 如果转换为对象类,则知道原始类

c++ - 将 SNMP OID 转换为 Win32 上的描述性名称

sharp-snmp - 正确解析MAC地址

c# - 基于 snmptrad 示例的 SharpSNMP 实现停止工作

snmp - 奇怪的 SNMP v3 响应,报告而不是获取响应

c# - XAML 数据类型中的神秘 `1

C#使用UTF8编码发送unicode短信

c# - 本地打印机的 SNMP?

c++ - 如何通过 SNMP 代理在网络管理系统和进程之间建立信息交换和子程序执行?