如何在我的networking中find所有启用snmp的设备?

我想find所有在我的networking中启用snmp的设备,我喜欢它在代理和pipe理器体系结构中的工作原理。

我得到了net-snmp库来创build一个简单的应用程序来从远程设备获取snmp数据。我必须编写一个程序来做到这一点,我想设备的mac地址和一些更多的信息。

我得到的程序来从远程节点获取数据,但我有一个怀疑如何获得系统的mac地址和什么是获取设备的mac的oid,

有没有任何通用的oid不会供应商specific.I必须获取所有设备的数据。

一些更新:

现在使用snmp工具snmpwalk我得到可能的信息,但其中我想要一些系统信息,mac,os名称,如果avilable,但我如何编程使用net-snmp获取这些信息,因为我不知道哪个系统的通用oid名字会来。我想写一个程序,我必须得到一些必要的信息,所以我需要的oid,我必须给这个oid的net-snmp的function,以便它会给我相应的结果。

我必须使用像sysName这样的string名来获得系统名称,如果是这样,那么在mac地址的情况下写入“ifPhysAddress.2”,然后提到mac(在snmpwalk的结果).so什么是oid获取Mac,因为它是所有设备不同的。

当我使用snmpwalk的时候,我得到了如下的一行

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 

许多监控应用程序将包括一个networking发现工具,它可以查询它发现的所有设备上的snmp。 有些甚至会允许你input多个SNMP社区string,它会尝试每个string。

这是一个与OpenNMS一起使用的脚本 ,它将生成一个包含启用了snmp的设备及其各自社区的XML文件。

它接受IP地址和多个社区名称作为input文件。