snmpwalk を使用して Python でスクリプトを作成し、スイッチに接続されている現在のデバイスと、それらが使用しているポートを取得しようとしています (MAC アドレスを取得し、データベースを使用して IP またはホスト名に変換します) )。
さて、すべてうまくいっていますが、この情報の OID 番号がスイッチによって異なることに気付きました。
この OID を取得しようとしています: 1.3.6.1.2.1.17.4.3.1.2
これは正常に機能し、MAC とポート番号を取得します。
しかし、私のスイッチのいくつかにはこれがあります: 1.3.6.1.2.1.17.7.1.2.2 そして他のスイッチには: 1.3.6.1.2.1.17.4.3.1.2
私はそれについてかなり混乱しており、名前の代わりに OID 番号をうまく探しているかどうか疑問に思っています。とにかく、いくつかの名前 (sysUpTime など) を使用して情報を見つけようとしましたが、snmpwalk は名前では機能しません (少なくとも、私には機能せず、この情報を取得するためにどの名前を使用する必要があるかわかりません)。たとえば、私は試しました:
$ snmpwalk -v 1 -c public sea-kmSwitch dot1dTpFdbPort
dot1dTpFdbPort: Unknown Object Identifier (Sub-id not found: (top) -> dot1dTpFdbPort)
Pythonにsnmpモジュールがあることは知っていますが、適切なドキュメントと例(pysnmp、pynetsnmp)が見つからなかったため、Linuxコマンドを使用してスクリプトを実行しようとしました.
問題は、どの OID 番号を取得する必要があるかをどのように知ることができるかということです。任意の OID 名を使用できますか? そしてどうやって?
私の英語に感謝し、申し訳ありません。