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

送信者 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

どうすればこれを行うことができますか? 一例で十分です!

4

1 に答える 1

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);
于 2015-09-09T14:22:28.230 に答える