我在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,但我不知道如何使用变量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
我怎么能这样做?一个例子就足够了!
答案 0 :(得分:2)
我发现答案是我自己做的测试,我将分享这些知识!
要在陷阱中创建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);