Lan

如何通過 MAC 地址找出 LAN 上的 Windows PC 的名稱?

  • October 29, 2015

是針對 OSX的一個等效問題。通過 MAC 地址找出區域網路中 Windows PC 的 NetBIOS 名稱的最簡單方法是什麼,反之亦然?

它可以通過IP完成:

nmblookup -A a.b.c.d
nmblookup pc_netbios_name

MAC地址有類似的命令嗎?

arp您可以使用下表通過其 IP 地址找出最近聯繫的設備的 MAC 地址:

ping -c1 -w1 10.0.2.2
PING 10.0.2.2 (10.0.2.2) 56(84) bytes of data.
64 bytes from 10.0.2.2: icmp_seq=1 ttl=63 time=0.785 ms

--- 10.0.2.2 ping statistics ---
1 packets transmitted, 1 received, 0% packet loss, time 0ms
rtt min/avg/max/mdev = 0.785/0.785/0.785/0.000 ms

arp -n 10.0.2.2
Address                  HWtype  HWaddress           Flags Mask            Iface
10.0.2.2                 ether   52:54:00:12:35:02   C                     eth0

你可以把它合併成一個小函式:

iptoarp() {
   local ip="$1"
   ping -c1 -w1 "$ip" >/dev/null
   arp -n "$ip" | awk '$1==ip {print $3}' ip="$ip"
}

iptoarp 10.10.0.2    # --> 52:54:00:12:35:02

我知道從 MAC 地址獲取 IP 地址或 NetBIOS 名稱的簡單方法。執行arpwatch並掃描日誌文件以從該設備進行聊天,或者ping依次掃描 LAN 上的每個 IP 地址並查找arp響應。

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