写了一个可以自动Ping多个IP地址的批处理文件,分享给大家
功能: 自动Ping一个网段中指定的IP区域,或Ping一个存放有IP地址的文件中的IP,并将离线的设备记录到文件@echo off
set err_file=C:\离线设备.txt
:Menu
Cls
@ ECHO.
@ ECHO. ※Ping方式选项※
@ ECHO.
@ ECHO. ┏*━*━*━*━*━━☆━━*━*━*━*━*┓
@ ECHO. ┃ ┃
@ ECHO. ┃ 使用网段方式 → 输入1 ┃
@ ECHO. ┃ ┃
@ ECHO. ┃ * * ** * * ┃
@ ECHO. ┃ ┃
@ ECHO. ┃ 使用文件方式 → 输入2 ┃
@ ECHO. ┃ ┃
@ ECHO. ┗*━*━*━*━*━━☆━━*━*━*━*━*┛
@ ECHO.
set /p choice= 请输入对应的数字按执行,默认1:
If /I "%Choice%"=="1" Goto Online
If /I "%Choice%"==""Goto Online
If /I "%Choice%"=="2" Goto Local
@ ECHO.
ECHO 选择无效,请重新输入
ping -n 2 127.1>nul
goto menu
:Online
@echo.
@echo.
set /p NetWork= 请输入网段前3位(默认:192.168.1):
set /p StartIP= 请输入开始IP:
set /p EndIP= 请输入结束IP:
If /I "%NetWork%"==""set NetWork=192.168.1
cls
@echo.
@echo.开始 Ping IP 地址从 %NetWork%.%StartIP% 到 %NetWork%.%EndIP%,结果保存到 %err_file%
echo %date% %time% >>%err_file%
echo Ping IP 地址从 %NetWork%.%StartIP% 到 %NetWork%.%EndIP%,以下是不在线的设备地址:>>%err_file%
for /L %%a in (%StartIP%,1,%EndIP%) do call :PingHost %NetWork%.%%a
echo. >>%err_file%
goto End
:Local
@echo.
@echo.
set /p IPFile= 请输入存放IP的文件名:
cls
@echo.
@echo.开始 Ping IP文件:%IPFile%,结果保存到 %err_file%
echo %date% %time% >>%err_file%
echo Ping IP文件:%IPFile%,以下是不在线的设备地址:>>%err_file%
for /f %%i in (%IPFile%) do call :PingHost %%i
echo. >>%err_file%
goto End
:PingHost
@echo Ping %1
ping %1 -n 1 | find "TTL" || echo %1 设备不在线>>%err_file%
goto:eof
:End
IP文件格式举例:
192.168.1.2
www.163.com
www.sina.com
8.8.8.8 nmap arp 这个不错,保存一下。 学习真的不错
推荐个小工具,netmonitor,共享软件,已经用了十多年了、 现在windows自带防火墙都不响应ping,为准确起见,还是ping完再用arp -a看一下才是最准确。
页:
[1]