我使用snmpwalk检索我的系统(localhost)或远程系统的mac地址,我正在使用此命令:
snmpwalk -v2c -c public localhost .1.3.6.1.2.1.2.2.1.6
并收到类似noSuchObject
的错误。
如何解决此错误?有没有其他方法可以使用snmp获取系统mac地址?
答案 0 :(得分:1)
没有"系统MAC地址"。系统没有MAC地址;网络接口,系统可能有零个,一个,两个或更多网络接口。
这就是你使用snmpwalk
的原因:因为.1.3.6.1.2.1.2.2.1.6(即ifPhysAddress
)是表中的一列接口并且您事先并不知道您将获得多少概念行(以及每行将用作其键的唯一数字索引)。
因此,您正确使用该命令。但接下来我们必须考虑自SNMP和SMI RFC编写以来的时代已经发生了变化,远远早于互联网泡沫时代,互联网是一个相对愉快和快乐的地方。如今,在他们披露的信息中,实施往往更为保守,因为您披露的每一条信息都可能是攻击您系统的另一种方式。为什么需要访问权限才能知道您系统的MAC地址?他们可能不会。我最近创建了一个SNMP代理,它支持"标准"对象不会出现在列出网络接口附近的任何地方。当{" safe"}时,snmp
中的许多RFC1213数据包/状态计数器都被故意废弃了。 RFC1907采用了子集。
这对你意味着什么?那么,远程系统必须具有网络接口,否则您将无法与之通信。因此,您要轮询/查询的SNMP代理(您没有说出哪个)要么是硬编码的,要么配置为不提供此信息。除了通过与创建软件的人交谈并询问它是否可配置之外,您无法解决这个问题。准备答案是" no"。