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

问题描述 投票:0回答:1

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

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

networking snmp
1个回答
0
投票

Linux shell命令的示例(在编写时没有其他语言或Windows的标记)

假设您要查询的计算机确实运行SNMP守护程序(通常是在Linux下的Net-SNMP中snmpd),并且您知道如何/允许它与它通信(具有各种社区名称或用户名/密码的版本1,2c或3) / encoding for v3)您可以发出以下SNMP请求:

为了测试,我在CentOS 7虚拟机上启动了一个snmpd,其主要地址是192.168.174.128。

我选择端口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 ...
    ...

Bonus 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

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

© www.soinside.com 2019 - 2024. All rights reserved.