从arp -a命令获取完整的设备列表

时间:2014-06-22 04:06:26

标签: batch-file networking arp

我制作了一个(非常)简单的批处理文件:

@echo off
:start
arp -a | findstr 20-7c-8f-3f-03-9c
cls
if %errorlevel% GEQ 1 (
echo The device is offline
Echo Device is offline at %time% on %date%. >> log.txt
) else (
echo The device is online.
Echo Device is online at %time% on %date%. >> log.txt
)
timeout 3 >nul /nobreak
goto start

虽然这样做工作得很好,但如果没有列出所说的设备,即电话,它就不起作用。

这就是我的意思。

连接到路由器的所有设备都不会显示在arp -a输出中。假设我的ipod的Mac地址是18:E7:F4:86:75:9F。有没有其他方法来检测它是否在局域网上?或者我应该只是其他软件。我喜欢使用它,并让它始终在后台运行。这将是一个非常有用的工具。我可以告诉我父母什么时候回家,或者我认识的人是否在我家。它将作为一个懒惰的安全计划。只考虑一些可能有的想法和潜力。

我最好使用Nmap吗?

1 个答案:

答案 0 :(得分:0)

我找到了解决这个问题的迂回方法。它不一定能解决我的问题,它只是使我的程序工作。它使用名为Wireless Network Watcher的工具,并使用其命令行功能。我基本上将程序屏幕上的所有内容打印到file.txt,然后我扫描file.txt作为mac地址。整个过程大约需要7秒钟,但它可以完成工作。

代码:

@echo off
echo gathering info . . .
:start
if exist info.txt del info.txt
wnetwatcher.exe /stext info.txt
:loop
if exist "info.txt" (
goto aaa
)
timeout 2 >nul /nobreak
goto loop

:aaa
cls
find info.txt "18-E3-A4-86-75-9C" >nul
if %errorlevel% GEQ 1 (
color c0
echo.
echo.

echo.    Cole's iPod is offline.
) else (
color a0
echo.
echo.
echo.    Cole's iPod is online.
)
echo.
echo.
echo.
echo.
echo.
echo.
echo.
echo Refreshing (7s)
goto start

有另一个答案仍然很好,即为什么我的ipod没有出现?