2

我在 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>());
}

我可以看到我可以选择 Submitter IP、Destination IP、SNMP Community String、Enterprise OID、Generic OID、Specific OID,但我不知道如何使用变量 List 来放置嵌入一些信息的 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

我怎么能这样做?一个例子就够了!

4

1 回答 1

2

我自己做测试找到了答案,我会分享这些知识!

要在您的陷阱中创建一个 varbind 变量,您需要首先创建一个 Lexm.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);
于 2015-09-09T14:22:28.230 回答