Answers:
如果您使用的是Windows计算机,请打开ping
目标计算机的命令框(Start ... Run ... cmd),以便与它建立联系,然后发出命令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)
ping
之前有arp -a
什么意义?
该命令arping
随iputils
linux 上的软件包一起提供。指定要ping的IP地址,即使在LAN上的交换机和子网之间(至少在我们的LAN上也是如此),它会返回MAC地址。
# 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)
arping
和iputils-arping
。该arping
程序包对我i
arping -c 1 -i eth0 10.100.10.11
如果您拥有一台管理型交换机,或者您的路由器允许您查看其ARP表,则可以从那里获取。
如果您拥有IP的计算机在线,则可以对其进行ping操作,并从本地ARP表中获取其MAC。
出于其他原因,请注意以下一般事项:由于在这种情况下将第3层协议用于寻址和传递,因此无法获得位于不同LAN上的机器的MAC地址。
您可以使用http://trogonsoftware.com/trogon-mac-scanner.html之类的实用程序或其他ip \ mac地址扫描程序来扫描网络,以查找LAN上远程计算机的地址。
如果您的计算机和目标计算机都在同一子网中,则可以对其进行ping操作,以使其IP⟷MAC关联通过地址解析协议(ARP)注册。
ping -c1 $IP
arp -n | grep $IP
例如,如果我想查找IP 10.1.135.150
:
# ping -c1 10.1.135.150
PING 10.1.135.150 (10.1.135.150) 56(84) bytes of data.
64 bytes from 10.1.135.150: icmp_seq=1 ttl=64 time=1.88 ms
--- 10.1.135.150 ping statistics ---
1 packets transmitted, 1 received, 0% packet loss, time 0ms
rtt min/avg/max/mdev = 1.883/1.883/1.883/0.000 ms
然后查询ARP表
# arp -n | grep 10.1.135.150
10.1.135.150 ether 8c:ae:4c:f4:4d:e1 C eth0
因此10.1.135.150的MAC为 8c:ae:4c:f4:4d:e1
只要没有网关在计算机之间路由流量,任何嗅探器都会为您提供此信息。
您始终可以在路由器上查阅arp表(在某些情况下,路由器将arp和dhcp租用表结合在一起)。