問題タブ [winsnmp]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
c - WinSNMPでSnmpRegister()が失敗する
WinSNMP(Visual Studio 2005)を使い始めたばかりで、次のコードを記述しました。(これはスニペットです。)
CallBackFunctionは次のように定義されます。
この例では、m_pSrcEntity、m_pDstEntity、m_pContextはNULLです。WM_SNMP_TESTは、Windowsメッセージとして登録されています。
最初のASSERTは成功します。が呼び出されたときにm_SnmpSession
値を取得するため、2番目のASSERTも成功します。それは正常ですか?つまり、セッションは上記の値を持つことができますか?その後、失敗して1を返します。WindowsSNMPおよびSNMPトラップサービスが実行されています。私は何が間違っているのですか?0x00000001
SnmpCreateSession()
SnmpRegister()
SnmpGetLastError()
c++ - WinSnmp 応答メッセージは常に V1 にあります
Windows で SNMP エージェントを管理するために、WinSnmp を使用して C++ アプリケーションを作成しています。これは非常にうまく機能しますが、SNMPAPI_UNTRANSLATED_V2 変換モードを設定し、GET 要求は V2 に設定されていますが、送信するすべての「応答」メッセージは V1 (0) です。理由がわかりません。バージョン V2 を強制する方法もわかりません。
私のコード:
送受信された UDP パケットの内容 (Wireshark を使用):
誰かがアイデアを持っている場合。ありがとう !
c++ - C++ SNMP 拡張エージェント - AsnSequence の操作方法
必要なのは、ソフトウェア システムを監視するための SNMP エージェントを作成することです。Visual C++ で SNMP 拡張エージェントを作成するために「winsnmp」を使用しています。出力は、Windows レジストリに登録され、「SNMP サービス」によってロードされ、適切に実行される x64 DLL です。私の SNMP エージェントは、「SNMP_PDU_GET」、「SNMP_PDU_GETNEXT」、「SNMP_PDU_SET」要求を処理し、SNMP トラップを生成することができます。これまでのところ、すべてがうまくいっています。
しかし、「winsnmp」で「AsnSequence」型または「ASN_SEQUENCE」型定数として提示される複雑なデータ型「sequence」を処理する必要があります。要件は、複数のレコードを含むテーブルで SNMP マネージャーに応答することです。テーブルには特定の構造があります。サンプル MIB フラグメントは次のとおりです。
テーブル全体が SNMP マネージャによって要求されると、エージェントは「SNMP_PDU_GETNEXT」要求を受け取ります。
変数
これらすべてのケースで、「&variableBindings->list[index].value.asnType」は「ASN_NULL」です。
生成されるレスポンス「&variableBindings->list[index].value.asnType」は「ASN_SEQUENCE」で初期化する必要があり、「&variableBindings->list[index].value.asnValue.sequence」は「AsnSequence」で初期化する必要があると思います。
それで、私は正しいですか?
「AsnSequence」のインスタンスを初期化し、データを入力するにはどうすればよいですか?
ありがとう。
sockets - WinSNMP を使用して SNMP メッセージをキャプチャして転送する方法は?
私は SNMP/WinSNMP を初めて使用し、ポート 161/162 で SNMP トラフィックを受け入れて別のデバイスに転送するために必要なものにアクセスしようとしています。メッセージを調べて、デバイスに渡す前に変更できるようにしたいと考えています。
WinSNMP エージェント API はそれに適していますか? C ++でこれを達成する方法の例はありますか?
ポインタをいただければ幸いです。ありがとう。
c++ - WinSNMP API で SNMP トラップを受信できない
WinSNMP を使用して、シンプルで小さな SNMP マネージャー プログラムを作成しています。しかし、トラップイベントを受信できません...誰か助けてくれませんか?
サンプルコードは次のとおりです。
ウィンドウ通知を使用する他のアプローチを試しました。しかし、うまくいきませんでした。
このコードを PowerShell イベントで検証しようとしました。evntwin を開き、PowerShell イベントを追加します。(ID:400/401/402/403) トラップ イベントを発生させるために、powershell を起動して終了しました。SNMP サービスとトラップ サービスが実行されています。そして、上記のコードのループ処理が実行されています。ただし、サンプルプログラムはトラップを受信できません。※Snmpbなど他のマネージャでもトラップを受信できます。