Centos

Centos:獲取本地機器的MAC地址

  • March 23, 2020

我有一個包含許多機器的本地網路。我需要從 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

我在您的 arp -a 命令輸出中看到顯示的是 10.1.0 地址,而您的 ping 有 10.101.2 它們位於不同的網路上。arp 將用於您所在的本地網路。

現在 ip neigh 是新的 arp -a 並且具有相同的行為。您必須進入該子網才能查看這些電腦的 MAC 和子網資訊。

你能 ssh 進去嗎?如果是這樣,如果您在該機器上有憑據,則可以發送遠端命令並從那裡獲取 arp。

ssh username@10.101.2.11 `ip neigh` 

我沒有使用 arp-scan 但是從查看它聲明掃描本地網路的文件來看。您嘗試安裝 Mac 的電腦似乎位於另一個子網中。

引用自:https://unix.stackexchange.com/questions/574514