gpt4 book ai didi

windows - 使用 ARP 从已知 MAC 地址获取未知 IP 地址?

转载 作者:可可西里 更新时间:2023-11-01 09:24:34 28 4
gpt4 key购买 nike

我在 Windows 平台 (Win7) 上,我有一个场景,我知道设备的 MAC 地址,但它们的 IP 在启动时是动态选择的。

我想编写一个批处理脚本来 ping 这些特定设备以确保它们处于事件状态。网络上还有许多我不想 ping 的其他设备,我只想从一组 10 个特定的 MAC 获取 IP 地址,然后只对它们执行 ping。它们都在地址方案10.1.(1-255).(1-255)

我知道的就这么多,我可以 ping 整个地址范围,然后

arp -a > arp.txt

...以这种格式输出包含 IP 列表和相关 MAC 地址的文档

Interface: 192.168.2.27 --- 0xb
Internet Address Physical Address Type
192.168.2.1 00-1f-90-c0-25-fd dynamic
192.168.2.3 00-00-aa-a1-d3-78 dynamic
192.168.2.16 ac-72-89-a7-7e-98 dynamic
192.168.2.17 78-45-c4-2f-71-0b dynamic
192.168.2.18 68-b5-99-8e-1c-35 dynamic
192.168.2.24 b8-ac-6f-30-00-34 dynamic
192.168.2.26 00-90-a9-6f-e0-be dynamic

我的问题是我如何(通过批处理脚本或其他自动化方法)找到我感兴趣的 MAC 地址行,并将 IP 地址放入一个我可以使用的变量中.

在 UNIX 中我可以 grep 但在 Windows 中我不知所措。

在此先感谢您的帮助。

最佳答案

将输出通过管道传递给 find 并使用 for 循环。

for /f "tokens=1,2,3 delims= " %%i in ('arp -a ^| find "00-1f-90-c0-25-fd"') do (
set ip=%%i
set mac=%%j
)

您可以稍微修改一下,制作一个批处理脚本,通过输入 MAC 地址来执行 ping 命令,如下所示 pingbymac.bat 00-1f-90-c0-25-fd

@for /f "tokens=1,2,3 delims= " %%i in ('arp -a ^| find "%~1"') do (
ping %%i
)

关于windows - 使用 ARP 从已知 MAC 地址获取未知 IP 地址?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/22821271/

28 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com