Answers:
如果只想查找给定IP地址的MAC地址,则可以在arp
对系统执行ping操作1次后使用该命令进行查找。
$ ping skinner -c 1
PING skinner.bubba.net (192.168.1.3) 56(84) bytes of data.
64 bytes from skinner.bubba.net (192.168.1.3): icmp_seq=1 ttl=64 time=3.09 ms
--- skinner.bubba.net ping statistics ---
1 packets transmitted, 1 received, 0% packet loss, time 0ms
rtt min/avg/max/mdev = 3.097/3.097/3.097/0.000 ms
现在在ARP表中查找:
$ arp -a
skinner.bubba.net (192.168.1.3) at 00:19:d1:e8:4c:95 [ether] on wlp3s0
如果要扫描整个LAN的MAC地址,则可以使用命令行工具fing
执行此操作。它通常没有安装,因此您必须去下载并手动安装。
$ sudo fing 10.9.8.0/24
您可以使用arp
命令:
arp -an
但是您只能在LAN中使用此命令,如果您想找出任何远程主机的MAC地址,也许您必须使用某种工具来捕获数据包tcpdump
并解析结果。
tcpdump(8)
只会显示您的本地MAC(即最后一站路由器的MAC)。路由器剥离了输入数据包的MAC层标头,并将新的添加到输出数据包中。
您可以使用以下命令
sudo nmap -sP -PE -PA21,23,80,3389 192.168.1.*
nmap:
网络探索工具和安全/端口扫描程序。从手册中:
-sP
(跳过端口扫描)。此选项告诉Nmap在发现主机后不要进行端口扫描,而仅打印出响应该扫描的可用主机。这通常称为“ ping扫描”,但您也可以请求运行traceroute和NSE主机脚本。默认情况下,此步骤比列表扫描更具干扰性,通常可以用于相同目的。它允许对目标网络进行轻侦察,而不会引起太多关注。与每个IP和主机名的列表扫描所提供的列表相比,知道多少主机可用对攻击者而言更有价值。
-PE; -PP; -PM (
ICMP Ping类型)。除了前面讨论过的异常的TCP,UDP和SCTP主机发现类型外,Nmap还可以发送由无处不在的ping程序发送的标准数据包。Nmap将ICMP类型8(回声请求)数据包发送到目标IP地址,期望从可用主机返回类型0(回声应答)。不幸的是,对于网络浏览器,许多主机和防火墙现在阻止了这些数据包,而不是响应RFC 1122 [2]要求。因此,针对Internet上未知目标的纯ICMP扫描很少具有足够的可靠性。但是对于系统管理员监视内部网络而言,它们可以是一种实用且有效的方法。使用-PE选项启用此回显请求行为。
-A
(激进扫描选项)。此选项启用其他高级和主动选项。
21,23,80,3389
搜索端口
192.168.1.*
IP范围。用你的替换。
arping -I <interface> -c 1 <host>
该命令应在响应中返回MAC地址。就像是,
$ arping -I eth0 -c1 192.168.1.2
ARPING 192.168.1.2 from 192.168.1.5 eth0
Unicast reply from 192.168.1.2 [08:01:27:38:EF:32] 0.746ms
Sent 1 probes (1 broadcast(s))
Received 1 response(s)
arping
由iputils-arping
Debian上的软件包提供。
arping
还需要告知带有该-I
选项的使用哪个接口。