有没有什么方法可以帮助我通过 MAC 地址找到连接在同一 LAN 中的机器的 IP 地址。
答案1
由于你们在同一个局域网中,因此你可以检查你的机器的 arp 表。如果机器没有出现,你可以 ping 你的广播地址,让所有机器响应你。
在 Windows 上,您要查找的命令是arp -a
(在 Nix 上,您只需输入arp
)
如果机器位于另一个子网,您必须能够访问第 3 层设备(路由器、L3 交换机、防火墙),您可以在那里查看 arp 表。
询问如何 ping 你的广播地址:
首先,您需要确定广播地址。使用 /8/16/24 地址,这相当容易。我将在此示例中使用 /24。
设置:
IP: 192.168.2.150
NETMASK: 255.255.255.0
您的广播地址是子网中的最后一个 IP。(有关子网划分的更多信息,Evan Anderson 有一个伟大的写上去。
在我的情况下,我的广播地址是 192.168.2.255。所以我要ping 192.168.2.255
ping 我的广播地址。这基本上是要求网络上的所有机器通过 ICMP 回显与您通信。要做到这一点,您的机器需要获取 mac 地址,因此它会向网络上的所有机器发送 arp 请求,它们都会回复其 mac 地址。然后您的机器在其 arp 表中就有它们的 MAC -> IP 映射。
答案2
对于 Windows 系统,有一个免费工具叫做Mac 扫描仪。
答案3
对广播地址执行 ping 操作不一定能保证获得响应。根据我的经验,只有打印机软件会响应广播 ping 操作。
您需要的实际上是 Reverse-Arp,但它已被 BOOTP 取代。不过我猜不出 BOOTP 能如何帮助您找到答案。
LLDP 和 CDP 等第 2 层发现协议应该会有所帮助,但它们不采用查询/响应模型,而是依赖于发送定期信标。如果您确定您的 LAN 仅由 Windows 7 PC 组成,您可以监听 LLDP 数据包并过滤掉感兴趣的数据包。
但对我来说最万无一失的方法似乎是 Netbios。Netbios 查询返回的详细信息包括接口 IP 和 Mac 地址详细信息。我会使用以下工具nbts扫描并 grep 查找 MAC 地址
nbtscan 192.168.1.0/24 | findstr "00:11:22"
这具有额外的优势,只要中间没有防火墙,就可以跨子网进行查询。