2

snmp を使用して Sanyo プロジェクター (PLC-XU106) を制御しようとしています。Windows アプリケーションのPJ Network Managerは、snmp を使用してプロジェクターから温度を取得し、その状態 (電源オン、出力など) を制御します。

今度は、snmpget とnet-snmpの他のツールを使用して、bash スクリプトで制御する必要があります。

snmpwalk -v 1 -c public 192.168.1.99管理値のサブツリーを取得するために使用すると、次の値が取得されます。

SNMPv2-MIB::sysDescr.0 = STRING: 1.001 00000 01012
SNMPv2-MIB::sysObjectID.0 = OID: SNMPv2-SMI::enterprises.17363.101.101.102.101.105
DISMAN-EVENT-MIB::sysUpTimeInstance = INTEGER: 0
SNMPv2-MIB::sysContact.0 = STRING: 
SNMPv2-MIB::sysName.0 = STRING: 
SNMPv2-MIB::sysLocation.0 = STRING: 
SNMPv2-MIB::sysServices.0 = INTEGER: 64
IF-MIB::ifNumber.0 = INTEGER: 1

そして、snmpwalk -v 1 -c public 192.168.1.99 SNMPv2-SMI::enterprises.17363.101.101.102.101.105私はこれを取得します:

SNMPv2-SMI::enterprises.17363.101.101.102.101.105.101.0 = INTEGER: 1968
SNMPv2-SMI::enterprises.17363.101.101.102.101.105.102.0 = INTEGER: 0
SNMPv2-SMI::enterprises.17363.101.101.102.101.105.103.101.0 = STRING: "Computer1"
SNMPv2-SMI::enterprises.17363.101.101.102.101.105.103.102.0 = STRING: "ANALOG"
SNMPv2-SMI::enterprises.17363.101.101.102.101.105.103.103.0 = INTEGER: 2
SNMPv2-SMI::enterprises.17363.101.101.102.101.105.104.101.0 = INTEGER: 32
SNMPv2-SMI::enterprises.17363.101.101.102.101.105.104.102.0 = INTEGER: 0
SNMPv2-SMI::enterprises.17363.101.101.102.101.105.105.101.0 = INTEGER: 0
SNMPv2-SMI::enterprises.17363.101.101.102.101.105.105.102.0 = INTEGER: 4
SNMPv2-SMI::enterprises.17363.101.101.102.101.105.106.101.101.0 = INTEGER: 0
SNMPv2-SMI::enterprises.17363.101.101.102.101.105.106.101.102.0 = INTEGER: 0
SNMPv2-SMI::enterprises.17363.101.101.102.101.105.106.101.103.0 = INTEGER: 0
SNMPv2-SMI::enterprises.17363.101.101.102.101.105.106.102.101.0 = INTEGER: 347
SNMPv2-SMI::enterprises.17363.101.101.102.101.105.106.102.102.0 = INTEGER: 432
SNMPv2-SMI::enterprises.17363.101.101.102.101.105.106.102.103.0 = INTEGER: 308
SNMPv2-SMI::enterprises.17363.101.101.102.101.105.107.101.0 = INTEGER: 3
SNMPv2-SMI::enterprises.17363.101.101.102.101.105.107.102.0 = INTEGER: 1
SNMPv2-SMI::enterprises.17363.101.101.102.101.105.107.103.0 = INTEGER: 1
SNMPv2-SMI::enterprises.17363.101.101.102.101.105.108.0 = STRING: "XU106"
SNMPv2-SMI::enterprises.17363.101.101.102.101.105.109.101.0 = INTEGER: -1
SNMPv2-SMI::enterprises.17363.101.101.102.101.105.109.102.0 = INTEGER: 1
End of MIB

いくつかのテストの後、これらの値のいくつかは次のとおりであることがわかりました。

温度

SNMPv2-SMI::enterprises.17363.101.101.102.101.105.106.102.101.0 = INTEGER: 347
SNMPv2-SMI::enterprises.17363.101.101.102.101.105.106.102.102.0 = INTEGER: 432
SNMPv2-SMI::enterprises.17363.101.101.102.101.105.106.102.103.0 = INTEGER: 308

ランプタイム。

SNMPv2-SMI::enterprises.17363.101.101.102.101.105.101.0 = INTEGER: 1968

しかし..どうすればプロジェクターの状態を変更できますか? 電源オン/スタンバイまたは出力? MIB 定義が見つかりません。

編集:

http リクエストでプロジェクターの電源をオン/オフできます。

curl -d "POWER+ON=ON" 192.168.1.99/index.htm
curl -d "POWER+OFF=Standby" 192.168.1.99/index.htm

しかし、次のようにsnmpでこれを行う方法があると思います

snmpset -v 1 -c public 192.168.1.99 SNMPv2-SMI::enterprises.17363.101.101.102.101.105.102.0 i 128
4

1 に答える 1

2

次のいずれかを行う必要がある可能性があります。

1) 各 OID が何であるかを定義するデバイスの MIB を見つけます。それがあれば、Net-SNMP を構成して結果を表示し、数字と値の文字列以上のものを取得して、突然すべてが意味をなすようにすることができます。しかし、オンラインで簡単に見つけられないように見えるため、ネットワーク管理ソフトウェアが付属していない限り、これは難しいようです.

2) したがって、オプション #2 は、PJ で電源を切り替え、wireshark でキャプチャを開くときに、デバイスへのトラフィックをキャプチャすることです。電源などを切り替えるためにSNMP経由で設定されているOIDが正確に表示されるはずです。次に、その使用を模倣するスクリプトを書くのsnmpsetは簡単です。

于 2012-01-18T14:44:23.177 に答える