LoginSignup
4
1

More than 3 years have passed since last update.

C#で簡単にSNMP getする方法

Last updated at Posted at 2019-10-01

.netのクラスライブラリになかったのね

 極々簡単な(GETしかしない)SNMPマネージャの作成を検討してて、最初はWMIのSNMP機能で出来るやろ?と思っていたんですが、WMIは対Windowsしか接続出来ないようにみえました…(出来るのかわからなかった)
 他の手段を探していくつか見つけたのでメモしておきます。

UDP使ってGet部分だけでも実装する

C#でASN.1のObject Identifierのエンコードを行う

この方のこの一連のシリーズの投稿を参考にGet出来るまで自力コーディングする方法。
学習にはなるけどそこまでではない(ない)

nugetからLextm.SharpSnmpLibをDLして使う

Lextm.SharpSnmpLib

nuget探すといくつか出てくるんですが、これはMITライセンスで使えます。簡単なサンプルはgithubにあるのでそれ見るとすぐ出来ました。
SNMP周りをガッツリやるならコレはめっちゃ便利そうです。

OLEPRNLib

 COMコンポーネントを使う方法。GETするだけだったので今回はこれを採用しました。

最初に見かけたのがWindows標準機能だけでsnmpgetする(PowerShell)
でpowershellだったのですが、COMコンポーネントなら使えるのでは?というのがきっかけ。

参照設定でoleprn 1.0 Type Libraryを追加します

コメント 2019-10-01 102413.png

以下のように使います。


var snmp = new OLEPRNLib.SNMP();
snmp.Open("127.0.0.1", "public", 3, 10000);
var result = snmp.GetAsByte("1.3.6.1.2.1.1.5");

4
1
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
4
1