使用批处理扫描局域网内存活的主机

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

3、筛选出存活的主机和非存活的主机

for /l %D in (1,1,255) do (ping 192.168.1.%D -n 1 && echo 192.168.1.%D>>ok.txt || echo 192.168.1.%D >>no.txt)                   //这段代码会将ping通的IP和不通的IP分别放到两个文件里面

for /f %D in (ip.txt) do (ping %D -n 1 && echo %i>>ok.txt || echo %D >>no.txt)      //在ip.txt文件里面写出要批量检测的IP地址,代码会自己读取这个文件里面的ip地址,并且把结果放到两个文件里面去;可以同时扫多个不同网段的IP

  • 3
    点赞
  • 15
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值