如何使用snmp获取系统的Mac地址?

时间:2018-05-02 07:46:22

标签: snmp

我使用snmpwalk检索我的系统(localhost)或远程系统的mac地址,我正在使用此命令:

snmpwalk -v2c -c public localhost .1.3.6.1.2.1.2.2.1.6

并收到类似noSuchObject的错误。

如何解决此错误?有没有其他方法可以使用snmp获取系统mac地址?

1 个答案:

答案 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"。