使用SNMP检索直接连接到SNMP设备的计算机的IP和MAC地址

时间:2019-03-11 12:46:05

标签: networking snmp

如何连接SNMP设备的机器IP和Mac。

ARP缓存未提供正确的详细信息。

1 个答案:

答案 0 :(得分:0)

Linux shell命令示例(撰写本文时未标记其他语言或Windows)

提供您要查询的计算机确实运行了SNMP守护程序(通常在Linux下从Net-SNMP嗅探到SNMP),并且您知道如何/可以与之交谈(版本1、2c或3,带有各种社区名称或v3的用户名/密码/编码),您可以发出以下SNMP请求:

为了进行测试,我在主地址为192.168.174.128的CentOS 7虚拟机上启动了snmpd。

我选择端口1610而不是传统的161,以便不进行sudo或setcap(snmpd)。 snmpd.conf文件的内容不在此问题的范围内。

第一个IP地址

snmptable -v 2c -c private 192.168.174.128:1610 ipAddrTable 

SNMP table: IP-MIB::ipAddrTable

    ipAdEntAddr ipAdEntIfIndex ipAdEntNetMask ipAdEntBcastAddr ipAdEntReasmMaxSize
      127.0.0.1              1      255.0.0.0                0                   ?
  192.168.122.1              3  255.255.255.0                1                   ?
192.168.174.128              2  255.255.255.0                1                   ?

MAC的第二个命令(仅打印3列)

snmptable -v 2c -c private 192.168.174.128:1610 ifTable | awk -c '{print $1 "\t" $2 "\t\t" $6}'
SNMP    table:      

ifIndex ifDescr     ifPhysAddress
1       lo          up
2       ens33       0:c:29:53:aa:c6
3       virbr0      52:54:0:e6:6b:2f
4       virbr0-nic      52:54:0:e6:6b:2f

在CentOS 7下检查时,我们得到

ifconfig
ens33: ...  mtu 1500
    inet 192.168.174.128  netmask 255.255.255.0  broadcast 192.168.174.255
    inet6 ...
    ether 00:0c:29:53:aa:c6 netmask 255.0.0.0
    ...

lo: ...  mtu 65536
    inet 127.0.0.1
    ...

virbr0: ...  mtu 1500
    inet 192.168.122.1  netmask 255.255.255.0  broadcast 192.168.122.255
    ether 52:54:00:e6:6b:2f ...
    ...

奖金shell命令:

snmptranslate -Oaf IF-MIB::ifTable
.iso.org.dod.internet.mgmt.mib-2.interfaces.ifTable

snmptranslate -Oaf IP-MIB::ipAddrTable
.iso.org.dod.internet.mgmt.mib-2.ip.ipAddrTable

我不知道为什么/如果有一个包含这两个信息的表。