搜了全网没有详细资料,自己探索出来了坐下整理
过程分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地址。