使用批处理扫描局域网内存活的主机的脚本
1、先在电脑任意位置下新建一个txt的文本,然后命名为“扫描局域网内存活的主机.bat”的bat文件。
2、右键该文件,选择"编辑",把以下内容复制进去,最后保存。
@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是文件,如果该路径下没有该文件会自动创建。
当然也可以直接在cmd窗口下直接运行for命令,命令只要把两个%%删掉一个就可以了:
for /L %P in (1,1,254) do @ping -w 10 -n 1 172.16.12.%P | findstr TTL= >>C:\Users\junlan\Desktop\ping.txt