内网扫描--bat

一条命令:

for /L %P in (1,1,254) do @ping -w 10 -n 1 172.16.12.%P | findstr TTL= >>C:ping.txt

bat代码:

@echo off
chcp 65001>nul
echo 正在扫描。。。。。。
for /L %%P in (1,1,254) do @ping -w 10 -n 1 192.168.1.%%P | findstr TTL= >>C:ping.txt
echo 扫描结束,按任意键结束窗口!
pause>nul

  

注:其中192.168.1修改要扫描的的IP地址段, (1,1,254)括号里面的数字也要视情况更改。

命令解析:

@echo off:关闭回显,前面加了个@就是连这条命令都不显示;

chcp 65001>nul:把窗口编码改成UTF-8;>nul:执行后并且不显示结果;

echo:显示内容;

for、in和do是for语句的关键字,必须组合使用,缺一不可

/L:表示以增量形式从开始到结束的一个数字序列,也就是循环从1开始到254结束;

%%P:区分大小写,是for语句中对形式变量的引用,即使变量P在do后的语句中没有参与语句的执行,也是必须出现的;

(1,1,254) :第一个"1"指从1开始;第二个"1"指步长值,每结束一次就增加1;第三个"254"指结束值;

-w:等待每次回复的超时时间(毫秒),默认4000毫秒(4秒);

-n:ping包的个数,默认是4个;

192.168.1.%%P:192.168.1.这个是地址段,可以修改自己想要扫描的地址段,%%P是前面in括号里面的数字;

|: 管道符,前面命令的结果当做一个参数传递给后面命令处理;

findstr:寻找字符串,在每循环一次for命令后查找包含有TTL=的字符;

>>:把前面的内容追加到文件的末尾,可以换成>: 清除文件中原有的内容后再写入;

最后在C盘生成ping.txt是文件,如果该路径下没有该文件会自动创建。

原文地址:https://www.cnblogs.com/trevain/p/13829429.html