私はSNMPを使用して取得しようとしています
snmpwalk -v 2c -c public x.x.x.x ipadd
x.x.x.xはubuntu 12.04を搭載したPCのIPです
IP-MIB::ipAddrTable = No Such Object available on this agent at this OID
それで、ubuntu 12.04 LT pcからIPアドレスを取得するにはどうすればいいですか?
答えてくれてありがとう。
SNMPとそのデーモン(Sudo apt-get install snmp snmpd
)をインストールした後、ファイル/etc/snmp/snmp.conf
を編集し、「mibs:」を含む行をコメント化する必要があります。
このファイル内で、次の行を変更します。
mibs :
に
#mibs :
次に、まだこれを行っていない場合、IETF MIBの完全なセットを取得する必要があります。これらのファイルは、ライセンスの問題により、デフォルトではDebian/Ubuntuシステムに出荷されません。
端末から(Ctrl-Alt-t)、次のコマンドを入力します。
Sudo apt-get install snmp-mibs-downloader
Sudo download-mibs
次に、/etc/snmp/snmpd.conf
を変更する必要があります。
SNMPを許可するために、システムはループバックアドレス以外のインターフェイスでクエリを受信します。この行は次のようになります。
# Listen for connections from the local system only
# agentAddress udp:127.0.0.1:161
# Listen for connections on all interfaces (both IPv4 *and* IPv6)
agentAddress udp:161,udp6:[::1]:161
これにより、すべてのシステムがマシンを照会できることに注意してください。デバイスへのSNMPアクセスを制限するには、これを調整する必要があります。
次のように、読み取り専用SNMP文字列をpublic
から選択したカスタム文字列に変更します。
#rocommunity public default -V systemonly
rocommunity <My$ecret$tr1nG> (Don't use this example!)
注:行から-V systemonly
を削除すると、MIBツリー全体へのアクセスが許可され、ツリーのシステム部分に制限されません。
SNMPデーモンを再起動します
Sudo service snmpd restart
最後に、SNMPクエリが適切に応答するようになります。
例えば。:
snmpwalk -v 2c -c <My$ecret$tr1nG> <MachineName> ipadd
IP-MIB::ipAdEntAddr.127.0.0.1 = IpAddress: 127.0.0.1
IP-MIB::ipAdEntAddr.192.168.1.7 = IpAddress: 192.168.1.7
IP-MIB::ipAdEntIfIndex.127.0.0.1 = INTEGER: 1
IP-MIB::ipAdEntIfIndex.192.168.1.7 = INTEGER: 2
IP-MIB::ipAdEntNetMask.127.0.0.1 = IpAddress: 255.0.0.0
IP-MIB::ipAdEntNetMask.192.168.1.7 = IpAddress: 255.255.255.0
IP-MIB::ipAdEntBcastAddr.127.0.0.1 = INTEGER: 0
IP-MIB::ipAdEntBcastAddr.192.168.1.7 = INTEGER: 1
同じクエリは、GUIベースのMIBブラウザを使用して実行することもできます。個人的には、グラフィカルクエリに SNMPb を使用することを好みます。 SNMPbがインストールされている を取得したら、SNMPbを開き、MIBツリーで目的のOIDに移動します。特定のケースでは、1.3.6.1.2.1.4.20
またはiso-> org-> internet-> mgmt-> mib-2 -> ip -> ipAddrTable
になり、Get Bulkを実行して同じデータを受信します。
私は同じ問題を抱えていて、すでに上記を行っていましたが、次の行を/etc/snmp/snmpd.confに追加するだけでよいことに気付きました。
# For IF-MIB data to show up in snmpwalk
view systemonly included .1.3.6.1.2.1.4.20
次に、snmpdを再起動します。
/etc/init.d/snmpd restart
その後、私は得る:
% ~/computer/snmp$ snmpwalk -v 2c -c public -O e mymachinename ipadd
IP-MIB::ipAdEntAddr.10.11.12.3 = IpAddress: 10.11.12.66
IP-MIB::ipAdEntAddr.127.0.0.1 = IpAddress: 127.0.0.1
IP-MIB::ipAdEntIfIndex.10.11.12.66 = INTEGER: 2
IP-MIB::ipAdEntIfIndex.127.0.0.1 = INTEGER: 1
IP-MIB::ipAdEntNetMask.10.11.12.66 = IpAddress: 255.255.255.0
IP-MIB::ipAdEntNetMask.127.0.0.1 = IpAddress: 255.0.0.0
IP-MIB::ipAdEntBcastAddr.10.11.12.66 = INTEGER: 1
IP-MIB::ipAdEntBcastAddr.127.0.0.1 = INTEGER: 0
HTH