ネットワーク内のすべてのSNMP対応デバイスを検索したいのですが、エージェントとマネージャーのアーキテクチャでどのように機能するかを知りました。
Net-snmpライブラリを取得して、リモートデバイスからsnmpデータを取得する簡単なアプリケーションを作成しました。これを行うためのプログラムを作成する必要があります。デバイスのMACアドレスとその他の情報が必要です。
リモートノードからデータを取得するためのプログラムを取得しましたが、システムのMACアドレスを取得する方法と、デバイスのMACを取得するためのOIDは何ですか?
ベンダー固有ではない一般的なOIDはありますか?すべてのデバイスのデータを取得する必要があります。
いくつかの更新:
今、snmpツールを使用してsnmpwalk情報を取得していますが、中にはシステム情報、mac、osの名前(必要な場合)が必要ですが、net-snmpを使用してこれらの情報を取得する方法名前が来る。私はプログラムを書きたいし、いくつかの必要な情報を取得しなければならないので、oidが必要です。このoidをnet-Snmpの関数に渡して、対応する結果を得る必要があります。
システム名を取得するには、sysNameのような文字列名を使用する必要があります。その場合、MACアドレスの場合は「ifPhysAddress.2」と記述され、次にMACが(snmpwalkの結果で)示されます。すべてのデバイスで異なるため、Macを入手してください。
snmpwalkを使用しているとき、次のように1行表示されます
SNMPv2-SMI :: mib-2.25.3.2.1.3.1 = STRING: "HP LaserJet Professional P1606dn"
これはプリンターの名前です。つまり、このoidはプリンターの名前を取得するためのものです(mib-2.25.3.2.1.3.1)。これはすべてのデバイスに当てはまりますか?このOIDにクエリを実行すると、対応するIPのデバイス名がデバイスである可能性があります。これは正しいかどうかです。
親切に、いくつかのアイデアを与えてください。
ありがとう
Nmap の snmp-brute を使用できます
nmap -sU -p161 --script snmp-brute --script-args snmplist=community.lst 192.168.1.0/24
多くの監視アプリケーションには、発見したすべてのデバイスでsnmpをクエリできるnetwork discoveryツールが含まれます。複数のSNMPコミュニティストリングを入力できるものもあり、それぞれを試行します。
これがスクリプトです OpenNMSで使用し、snmp対応デバイスとそれぞれのコミュニティを含むXMLファイルを生成します。
IPアドレスと複数のコミュニティ名を入力ファイルとして受け入れます。