用SNMP获得MAC物理地址的方法

搜了全网没有详细资料,自己探索出来了坐下整理

过程分2步

第一步根据你想要获取的ip地址查询网卡序号,就比如说我想查 ip为 10.10.10.119 的设备

snmp get 10.10.10.119 public  ..1.3.6.1.2.1.4.20.1.2.10.10.10.119

会返回一个序号

Variable = ip.ipAddrTable.ipAddrEntry.ipAdEntIfIndex.10.10.10.163
Value    = Integer32 24

这里返回的是 24 

然后我们拿着这个需要找 mac 

get 10.10.10.119 public  .1.3.6.1.2.1.2.2.1.6.24

结果:

Variable = interfaces.ifTable.ifEntry.ifPhysAddress.24
Value    = String <0xb4><0x2e><0x99><0x9b><0xb7><0x7e>

这个 16 进制字符串就是我们要找的 mac地址

mac 也就是 b4:2e:99:9b:b7:7e

 

使用SNMP协议通过发送SNMP GET请求获取设备的MAC地址。需要查询设备的IP地址,并使用该地址作为请求的参数。具体过程如下:

根据需要获取的IP地址查询网卡的编号:

snmp get [IP地址] [公共读取字符串] ..1.3.6.1.2.1.4.20.1.2.[IP地址]
使用网卡编号查询MAC地址:

snmp get [IP地址] [公共读取字符串] .1.3.6.1.2.1.2.2.1.6.[网卡编号]
以上代码执行后会返回一个16进制字符串,即为所查询的MAC地址。