我知道自己局域网上某台主机的 IP 地址。如何利用该 IP 地址找到其 MAC 地址(无需物理访问)?
答案1
如果您使用的是 Windows 计算机,请打开命令框(开始...运行...cmd),ping
目标机器,所以你已经与它取得了联系,然后发出命令arp -a
查看本地 ARP 表,其中将列出 IP 地址及其对应的 MAC 地址,例如,
C:\Users\L3K> arp -a
Interface: 192.168.200.128 --- 0xb
Internet Address Physical Address Type
192.168.200.1 00-50-7f-c3-5c-88 dynamic
192.168.200.2 00-50-7f-d1-e1-40 dynamic
192.168.200.6 00-80-77-dd-a8-6b dynamic
如果您使用的是基于 Linux 的系统,请安装该arp-scan
实用程序,然后从命令行您可以要求扫描您的网络 - 就我的情况而言:
sudo arp-scan 192.168.200.0/24
如果您使用以太网以外的接口(例如无线),则需要指定,例如
sudo arp-scan -I wlan0 192.168.200.0/24
如果您不知道正在使用什么界面,只需使用下面的相应命令。
ifconfig (For Debian based OS such as Ubuntu)
ip link (For OS like Arch Linux)
答案2
该命令arping
随 Linux 上的软件包一起提供iputils
。指定要 ping 的 IP 地址,它会返回 MAC 地址,即使跨 LAN 上的交换机和子网也是如此(至少在我们的 LAN 上是这样的)。
# arping -c 1 -I eth0 10.100.10.11
ARPING 10.100.10.11 from 10.100.10.25 eth0
Unicast reply from 10.100.10.11 [00:22:68:88:F3:90] 0.594ms
Sent 1 probes (1 broadcast(s))
Received 1 response(s)
答案3
尝试
getmac /s hostname
或者:
getmac /s IP
您需要获得机器的管理员权限才能执行此操作。
答案4
如果您有一个托管交换机或者您的路由器允许您查看其 ARP 表,您可以从那里获取此信息。
如果您拥有 IP 的计算机在线,您可以 ping 它并从本地 ARP 表中获取其 MAC。
为了其他人的需要,这里给出一个一般说明:无法获取位于不同 LAN 上的机器的 MAC 地址,因为在这种情况下使用第 3 层协议进行寻址和传送,而 MAC 是第 2 层。