Centos:获取本地机器的MAC地址

Centos:获取本地机器的MAC地址

我有一个包含很多机器的本地网络。我需要从 CentOS 服务器获取特定 IP 的 MAC 地址(并​​且需要针对数百个 IP 自动执行此操作)。

我已经尝试过 ping + arp -a,但它似乎没有跟踪这个 IP。

ping -c 3 10.101.2.11
PING 10.101.2.11 (10.101.2.11) 56(84) bytes of data.
64 bytes from 10.101.2.11: icmp_seq=1 ttl=63 time=0.531 ms
64 bytes from 10.101.2.11: icmp_seq=2 ttl=63 time=0.564 ms
64 bytes from 10.101.2.11: icmp_seq=3 ttl=63 time=0.576 ms

--- 10.101.2.11 ping statistics ---
3 packets transmitted, 3 received, 0% packet loss, time 2000ms
rtt min/avg/max/mdev = 0.531/0.557/0.576/0.019 ms

$ arp -a
? (10.1.0.101) at xx:xx:xx:xx:xx:xx [ether] on eth0
? (10.1.0.11) at xx:xx:xx:xx:xx:xx [ether] on eth0
gateway (10.1.0.1) at xx:xx:xx:xx:xx:xx [ether] on eth0
? (10.1.0.102) at xx:xx:xx:xx:xx:xx [ether] on eth0


在其他操作系统上arp-scan可能是获取设备 MAC 的解决方案,但在 CentOS 上输出很简单:

$: arp-scan 10.101.2.11
Interface: eth0, datalink type: EN10MB (Ethernet)
Starting arp-scan 1.9.2 with 1 hosts (http://www.nta-monitor.com/tools-resources/security-tools/arp-scan/)
4 packets received by filter, 0 packets dropped by kernel
Ending arp-scan 1.9.2: 1 hosts scanned in 1.815 seconds (0.55 hosts/sec). 0 responded

答案1

我在你的 arp -a 命令输出中看到显示 10.1.0 地址,而你的 ping 有 10.101.2,它们位于不同的网络上。 arp 将用于您所在的本地网络。

现在 ip neigh 是新的 arp -a 并且具有相同的行为。您必须进入该子网才能查看这些计算机的 MAC 和子网信息。

你能通过 ssh 进入吗?如果是这样,如果您在那台机器上有凭据,您可以发送远程命令并从那里获取 arp。

ssh [email protected] `ip neigh` 

我没有使用过 arp-scan,但是通过查看文档,它指出扫描本地网络。您尝试连接 Mac 的计算机似乎位于另一个子网中。

答案2

您的目标似乎生活在不同的网络上。您被告知 10.1.0.1 是网关,因为它没有给出目标(IP 10.101.xx)的 MAC 地址,它们可能位于不同的网络上。地址从 10.1.0.1 到 10.101.0.0 意味着网络上有大约 60 万台机器......

了解网络设置是什么(网络掩码、路由器……)。

相关内容