我使用snmpwalk检索我的系统(Localhost)或远程系统的mac地址,并使用以下命令:
snmpwalk -v2c -c public localhost .1.3.6.1.2.1.2.2.1.6并得到一个类似于noSuchObject的错误。
如何解决这个错误?还有其他方法可以使用snmp获取系统mac地址吗?
发布于 2018-05-08 17:02:37
没有“系统MAC地址”这样的东西。系统没有MAC地址;网络接口有,一个系统可能有零个、一个、两个或多个网络接口。
这就是使用snmpwalk的原因:因为.1.3.6.1.2.1.2.2.1.6 (即ifPhysAddress)是一个接口表中的列,而且您事先不知道您将返回多少概念性行(以及每行将使用什么唯一的数字索引作为其键)。
所以,您正在正确地使用该命令。但是接下来,我们必须考虑的是,自从SNMP和SMI RFCs被编写以来,时代已经发生了变化,早在网络繁荣之前,互联网是一个相对令人愉快和快乐的地方。如今,实现在所披露的信息中往往更加保守,因为您所披露的每一条信息都可能是攻击您的系统的另一种方式。为什么有人需要访问才能知道系统的MAC地址?我最近创建了一个SNMP代理,它对“标准”对象的支持并不接近列出网络接口。当RFC1213中的“安全”子集被采用到RFC1907中时,snmp中的许多数据包/状态计数器被故意淘汰。
这对你意味着什么?那么,远程系统必须有一个网络接口,否则您将无法与它交谈。因此,您正在轮询/查询的SNMP代理(没有说明哪个)要么是硬编码的,要么是配置为不提供此信息。你无法回避这个问题,除非与软件开发者交谈,并询问软件是否是可配置的;准备好答案是“否”。
https://stackoverflow.com/questions/50129507
复制相似问题