
今晚继续我们的手机批处理系列教程。如果想知道自己的小区宽带或局域网,甚至外网任意某一ip段,目前有多少人同时在上网肿么办呢?可能你们想到的必定是找工具什么的。其实不然,利用Windows内置的批处理用途完全可以实现批量ping查找指定端口存活主机的目的!瞧好儿吧您。
先来看以下菲菲写好的批处理代码,有木有眼花缭乱的觉得,不要害怕哦,其实核心代码只有一行而已!准确的说需要是将一些更基本的DOS命令组合在了一起。
@echo off

color e
title 批处理扫网段主机 BY:菲菲博客()
echo.

@for /f "tokens=1-4 delims=." %%i in (ip.txt) do (@for /l %%n in (1,1,255) do @ping -w 600 -n 1 %%i.%%j.%%k.%%n|find /i "ttl")
echo.&echo 扫描完毕,按任意键退出...&pause>nul
复制以上代码粘贴到记事本文档里,然后另存为 批量ping.bat同网段活动主机,再新建一个空白的文本文档,重命名为 ip.txt 。一切打算完事儿,就可以将你要批量扫描的ip段的地址放入ip.txt里(比如要扫自己对应的内网IP段就可以在ip.txt里输入 192.168.1.1 后保存),然后双击一键运行 批量ping.bat 批处理脚本就可以看见返回的结果了。格式类似于:

Reply from 192.168.1.1: bytes=32 time=2ms TTL=64
Reply from 192.168.1.2: bytes=32 time=3ms TTL=64
Reply from 192.168.1.3: bytes=32 time=2ms TTL=64

Reply from 192.168.1.5: bytes=32 time=2ms TTL=64
Reply from 192.168.1.6: bytes=32 time=1ms TTL=64
……此处省略余下的所有可能的结果……
下面我就来回顾一下介个看起来有点儿吃力的批处理命令吧。我们分拆来看一下,ping -w 600 -n 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 。不知道这样说菲.菲's博客的朋友如何看懂呢?看不懂滴可以在cmd窗口里输入 for /?查看一下命令详解吧。成品的完整批处理附件在下方,你懂得!
附件(1.4kB):批量ping网段.rar
本文来自电脑杂谈,转载请注明本文网址:
http://www.pc-fly.com/a/tongxinshuyu/article-144079-1.html
多干事