先来看下面写好的批处理代码,有木有眼花缭乱的感觉,不要害怕哦,其实核心代码只有一行而已!准确的说应该是将一些最基本的DOS命令组合在了一起。
1 | @echo off |
复制以上代码粘贴到记事本文档里,然后另存为 批量ping.bat
,再新建一个空白的文本文档,重命名为 ip.txt
。一切准备完事儿,就可以将你要批量扫描的ip段的地址放入 ip.txt
里(比如要扫自己对应的内网IP段就可以在 ip.txt
里输入 192.168.0.1
后保存),然后双击一键运行 批量ping.bat
批处理脚本就可以看到返回的结果了。格式类似于:
1 | 来自 192.168.0.1 的回复: 字节=1 时间<1ms TTL=64 |
下面我就来解读一下介个看起来有点儿吃力的批处理命令吧。我们分拆来看一下,ping -w 600 -n 1 -l 1
表示对指定ip地址ping一次,等待超时的时间为600毫秒;|find /i "ttl"
指的是仅显示ping返回结果中带“ttl”字符串的结果,也就是将指定网段内不存活的主机过滤掉了。而前面的 @for /f "tokens=1-4 delims=." %%i in (ip.txt)
意思是将“ip.txt”里的字符串(也就是我们要查找的ip段的地址)以“.”为界分割为四部分,分别赋予后面的变量 %%i、%%j、%%k 。最后剩下的 @for /l %%n in (1,1,255)
则表示从1开始循环+1递增一直到255停止,然后赋予变量 %%n 。不知道这样说同学能否看懂呢?看不懂滴可以在cmd窗口里输入 for /?
查看一下命令详解吧。