Batch file 批量随机ping(尝试确定ping是否成功)
我已经做了一个程序,创建随机IP并ping它们,看看它们是否存在。它使用'>'和'>>'记录输出。我想检查ping是否超时,以及它是否将其从文本文档中排除。这是我目前的代码:Batch file 批量随机ping(尝试确定ping是否成功),batch-file,random,ip,ping,Batch File,Random,Ip,Ping,我已经做了一个程序,创建随机IP并ping它们,看看它们是否存在。它使用'>'和'>>'记录输出。我想检查ping是否超时,以及它是否将其从文本文档中排除。这是我目前的代码: `@ECHO OFF :LOOP SET /A N1=%RANDOM% * 255 / 32768 SET /A N2=%RANDOM% * 255 / 32768 SET /A N3=%RANDOM% * 255 / 32768 SET /A N4=%RANDOM% * 255 / 32768 PING %N1
`@ECHO OFF
:LOOP
SET /A N1=%RANDOM% * 255 / 32768
SET /A N2=%RANDOM% * 255 / 32768
SET /A N3=%RANDOM% * 255 / 32768
SET /A N4=%RANDOM% * 255 / 32768
PING %N1%.%N2%.%N3%.%N4%>>"%USERPROFILE%\Desktop\IP.txt"
GOTO LOOP`
ping完成后,我希望它记录响应的IP,而不是超时的IP
-提前感谢@echo off
@echo off
setlocal EnableDelayedExpansion
rem Set the number of IP's to test
set num=20
echo Creating and testing %num% IP's
echo/
for /L %%i in (1,1,%num%) do (
rem Create the random IP
set /A N1=!random! %% 255, N2=!random! %% 255, N3=!random! %% 255, N4=!random! %% 255
set "IP=!N1!.!N2!.!N3!.!N4!"
rem Show the IP and leave the cursor after it
set /P "=%%i- Testing !IP!: " < NUL
rem Test the IP with ping and get just the 3rd word of the 3rd line from ping output
set "word="
for /F "skip=2 tokens=3" %%a in ('ping !IP!') do if not defined word set "word=%%a"
rem If that word is not "out", the IP is correct
if "!word!" neq "out" (
echo CORRECT
echo !IP!>> IP.txt
) else (
echo failed...
)
)
setlocal EnableDelayedExpansion
rem设置要测试的IP数量
设置num=20
回显创建和测试%num%IP
回音/
对于(1,1,%num%)中的/L%%i,请执行以下操作(
rem创建随机IP
set/A N1=!random!%%255,N2=!random!%%255,N3=!random!%%255,N4=!random!%%255
设置“IP=!N1!!N2!!N3!!N4!”
rem显示IP并将光标保留在其后面
设置/P“=%%i-测试!IP!:”>IP.txt
)否则(
回音失败。。。
)
)
@echo off
setlocal EnableDelayedExpansion
rem设置要测试的IP数量
设置num=20
回显创建和测试%num%IP
回音/
对于(1,1,%num%)中的/L%%i,请执行以下操作(
rem创建随机IP
set/A N1=!random!%%255,N2=!random!%%255,N3=!random!%%255,N4=!random!%%255
设置“IP=!N1!!N2!!N3!!N4!”
rem显示IP并将光标保留在其后面
设置/P“=%%i-测试!IP!:”>IP.txt
)否则(
回音失败。。。
)
)
@echo off
setlocal enableextensions enabledelayedexpansion
对于(0)do中的/l%%a(
设置/a“a=!random!%%255”^
“B=!随机!%%255”^
“C=!random!%%255”^
“D=!随机!%%255”
ping-w 1000-n1“!A!!B!!C!!D!”;查找“TTL=“>nul&&(
>>“online.txt”echo!A!!B!!C!!D!
)
)
这将创建无限循环(这对于(0)中的/l%%a意味着对于%%a,从0开始,到0,以0为步长)
对于每个迭代,为每个ip地址八位字节生成四个随机数。为此,我们使用内置的生成一个随机数!随机的代码>变量(需要)并使用set/a
命令(执行计算的批处理方式)将除法的剩余部分除以255(在批处理文件中,模运算符为%%
)
一旦生成ip(更多延迟扩展,请参阅前面链接的答案),将发送一个ping,并检查其输出是否存在TTL=
string()。如果存在此字符串,则可以访问目标并将地址附加到文件中
为了测试ping
命令的输出中是否存在该字符串,将该字符串导入find
命令,搜索指定的字符串。如果找到字符串errorlevel
变量设置为0,如果未找到该字符串,errorlevel
将设置为1
使用条件执行运算符&&
检查此值。这意味着如果上一个命令没有将errorlevel
设置为大于0的任何值,则执行下一个命令
因此,如果find
命令找到字符串,errorlevel
将不为1,并且将执行echo
命令。此echo
被重定向到附加到目标文件(>
是附加重定向)@echo关闭
setlocal enableextensions enabledelayedexpansion
对于(0)do中的/l%%a(
设置/a“a=!random!%%255”^
“B=!随机!%%255”^
“C=!random!%%255”^
“D=!随机!%%255”
ping-w 1000-n1“!A!!B!!C!!D!”;查找“TTL=“>nul&&(
>>“online.txt”echo!A!!B!!C!!D!
)
)
这将创建无限循环(这对于(0)中的/l%%a意味着对于%%a,从0开始,到0,以0为步长)
对于每个迭代,为每个ip地址八位字节生成四个随机数。为此,我们使用内置的生成一个随机数!随机的代码>变量(需要)并使用set/a
命令(执行计算的批处理方式)将除法的剩余部分除以255(在批处理文件中,模运算符为%%
)
一旦生成ip(更多延迟扩展,请参阅前面链接的答案),将发送一个ping,并检查其输出是否存在TTL=
string()。如果存在此字符串,则可以访问目标并将地址附加到文件中
为了测试ping
命令的输出中是否存在该字符串,将该字符串导入find
命令,搜索指定的字符串。如果找到字符串errorlevel
变量设置为0,如果未找到该字符串,errorlevel
将设置为1
使用条件执行运算符&&
检查此值。这意味着如果上一个命令没有将errorlevel
设置为大于0的任何值,则执行下一个命令
因此,如果find
命令找到字符串,errorlevel
将不为1,并且将执行echo
命令。这个echo
被重定向到附加到目标文件(>
是一个附加重定向)这是一个好的开始这是一个好的开始你能给我解释一下吗?正如我之前所说,我是一个新手,我不知道这些命令中的一些