2012-2-20 9:12:44 补充内容:

更疯狂的改进版,更短更精悍!

1、修正Bug,只要域名能解析得到IP,就能运行!

2、兼容中文、英文版 ping.exe,也就是兼容 XP、Win7!

3、优化代码,更短更彪悍,省了一个for循环。

代码如下:

@for /f "tokens=1-4 delims=." %i in ('ping -w 1 -n 1 www.google.com^|find /i "ping"^|find /i /v "]"') do (@for /l %x in (1,1,255) do @ping -w 1 -n 1 %i.%j.%k.%x|find /i "ttl")

哈哈哈,其实这个问题,很早很早,就有人问过了,见这里:

只用一条DOS,CMD命令判断,搜索,查找局域网,互联网中存活的主机

今天忽然蛋疼了,就搞了个升级版。。更“乱”,更复杂,更蛋疼了。。。如下所示……

一行版:

@for /f "tokens=1-4 delims=." %i in ('@for /f ^"tokens^=2^" %i in ^(^'ping -w 1 -n 1 www.baidu.com^^^|find /i ^"ttl^"^'^) do @echo %i') do (@for /l %x in (1,1,255) do @ping -w 1 -n 1 %i.%j.%k.%x|find /i "ttl")

两行版:

@for /f "tokens=2" %i in ('ping -w 1 -n 1 www.baidu.com^|find /i ^"ttl^"') do @set ip=%i
@for /f "tokens=1-4 delims=." %i in ("%ip%") do (@for /l %x in (1,1,255) do @ping -w 1 -n 1 %i.%j.%k.%x|find /i "ttl")

这都是一些使用cmd命令的基础知识,就简单的解释一下。

这行看似很复杂的命令,其实都是一些基础的批处理命令“拼接”起来的,原始单条命令如下:

//ping 百度一次(-n 1),并且指定数据包返回超时间为1秒(-w 1)
ping -w 1 -n 1 www.baidu.com

//查找上个命令输出的结果中的指定字符串,然后输出存在该字符串(ttl)的这一行,不分大小写(/i)
find /i "ttl"

//使用for命令将查找的结果分割,只提取IP值
@for /f "tokens=2" %i in ('ping -w 1 -n 1 www.baidu.com^|find /i ^"ttl^"') do @set ip=%i

//同样使用for命令将提取的ip值再次分割,提取IP(点分十进制格式)的前三段
//然后继续使用for命令循环 Ping *.*.*.1 - *.*.*.254,最后输出有数据返回的IP
@for /f "tokens=1-4 delims=." %i in ("%ip%") do (@for /l %x in (1,1,255) do @ping -w 1 -n 1 %i.%j.%k.%x|find /i "ttl")

由此可见,将cmd命令灵活运用,其功能也是很强大的。

输出效果很赞,输出格式如下:

来自 220.181.111.5 的回复: 字节=32 时间=41ms TTL=53
来自 220.181.111.10 的回复: 字节=32 时间=41ms TTL=53
来自 220.181.111.11 的回复: 字节=32 时间=41ms TTL=53
来自 220.181.111.12 的回复: 字节=32 时间=41ms TTL=53
来自 220.181.111.13 的回复: 字节=32 时间=40ms TTL=53
来自 220.181.111.14 的回复: 字节=32 时间=40ms TTL=53
来自 220.181.111.15 的回复: 字节=32 时间=39ms TTL=54
来自 220.181.111.17 的回复: 字节=32 时间=39ms TTL=53
来自 220.181.111.18 的回复: 字节=32 时间=40ms TTL=53
来自 220.181.111.19 的回复: 字节=32 时间=38ms TTL=53
来自 220.181.111.20 的回复: 字节=32 时间=40ms TTL=53
来自 220.181.111.21 的回复: 字节=32 时间=39ms TTL=53
来自 220.181.111.22 的回复: 字节=32 时间=41ms TTL=53
来自 220.181.111.23 的回复: 字节=32 时间=39ms TTL=53
来自 220.181.111.25 的回复: 字节=32 时间=39ms TTL=53
来自 220.181.111.26 的回复: 字节=32 时间=37ms TTL=53
来自 220.181.111.27 的回复: 字节=32 时间=38ms TTL=53
来自 220.181.111.28 的回复: 字节=32 时间=39ms TTL=53
来自 220.181.111.29 的回复: 字节=32 时间=38ms TTL=53
来自 220.181.111.30 的回复: 字节=32 时间=39ms TTL=53
来自 220.181.111.32 的回复: 字节=32 时间=41ms TTL=53
来自 220.181.111.33 的回复: 字节=32 时间=38ms TTL=53
来自 220.181.111.35 的回复: 字节=32 时间=39ms TTL=53
来自 220.181.111.36 的回复: 字节=32 时间=39ms TTL=53
来自 220.181.111.40 的回复: 字节=32 时间=41ms TTL=53
来自 220.181.111.41 的回复: 字节=32 时间=39ms TTL=53
来自 220.181.111.42 的回复: 字节=32 时间=40ms TTL=53
来自 220.181.111.43 的回复: 字节=32 时间=39ms TTL=53
来自 220.181.111.45 的回复: 字节=32 时间=58ms TTL=53
来自 220.181.111.46 的回复: 字节=32 时间=39ms TTL=53
来自 220.181.111.47 的回复: 字节=32 时间=40ms TTL=53
来自 220.181.111.48 的回复: 字节=32 时间=39ms TTL=53
来自 220.181.111.49 的回复: 字节=32 时间=38ms TTL=53
来自 220.181.111.50 的回复: 字节=32 时间=39ms TTL=53
来自 220.181.111.52 的回复: 字节=32 时间=38ms TTL=53
来自 220.181.111.53 的回复: 字节=32 时间=39ms TTL=53
来自 220.181.111.54 的回复: 字节=32 时间=39ms TTL=53
来自 220.181.111.55 的回复: 字节=32 时间=39ms TTL=53
来自 220.181.111.57 的回复: 字节=32 时间=41ms TTL=53
来自 220.181.111.58 的回复: 字节=32 时间=40ms TTL=53
来自 220.181.111.59 的回复: 字节=32 时间=40ms TTL=53
来自 220.181.111.60 的回复: 字节=32 时间=41ms TTL=53
来自 220.181.111.61 的回复: 字节=32 时间=40ms TTL=53
来自 220.181.111.62 的回复: 字节=32 时间=39ms TTL=53
来自 220.181.111.63 的回复: 字节=32 时间=38ms TTL=53
来自 220.181.111.64 的回复: 字节=32 时间=41ms TTL=53
来自 220.181.111.65 的回复: 字节=32 时间=39ms TTL=53
来自 220.181.111.66 的回复: 字节=32 时间=39ms TTL=53
来自 220.181.111.67 的回复: 字节=32 时间=37ms TTL=53
来自 220.181.111.68 的回复: 字节=32 时间=39ms TTL=53
来自 220.181.111.71 的回复: 字节=32 时间=39ms TTL=53
来自 220.181.111.73 的回复: 字节=32 时间=39ms TTL=53
来自 220.181.111.75 的回复: 字节=32 时间=41ms TTL=53
来自 220.181.111.76 的回复: 字节=32 时间=39ms TTL=53
来自 220.181.111.77 的回复: 字节=32 时间=37ms TTL=53
来自 220.181.111.78 的回复: 字节=32 时间=39ms TTL=53
来自 220.181.111.79 的回复: 字节=32 时间=38ms TTL=53
来自 220.181.111.80 的回复: 字节=32 时间=42ms TTL=53
来自 220.181.111.81 的回复: 字节=32 时间=40ms TTL=53
来自 220.181.111.83 的回复: 字节=32 时间=41ms TTL=53
来自 220.181.111.84 的回复: 字节=32 时间=42ms TTL=53
来自 220.181.111.85 的回复: 字节=32 时间=41ms TTL=53
来自 220.181.111.86 的回复: 字节=32 时间=40ms TTL=53
来自 220.181.111.88 的回复: 字节=32 时间=41ms TTL=53
来自 220.181.111.90 的回复: 字节=32 时间=39ms TTL=53
来自 220.181.111.91 的回复: 字节=32 时间=39ms TTL=53
来自 220.181.111.92 的回复: 字节=32 时间=40ms TTL=53
来自 220.181.111.94 的回复: 字节=32 时间=37ms TTL=53
来自 220.181.111.95 的回复: 字节=32 时间=39ms TTL=53
来自 220.181.111.97 的回复: 字节=32 时间=40ms TTL=53
来自 220.181.111.98 的回复: 字节=32 时间=39ms TTL=53
来自 220.181.111.99 的回复: 字节=32 时间=40ms TTL=53
来自 220.181.111.100 的回复: 字节=32 时间=41ms TTL=53
来自 220.181.111.101 的回复: 字节=32 时间=40ms TTL=53
来自 220.181.111.102 的回复: 字节=32 时间=39ms TTL=53
来自 220.181.111.104 的回复: 字节=32 时间=42ms TTL=53
来自 220.181.111.105 的回复: 字节=32 时间=38ms TTL=53
来自 220.181.111.106 的回复: 字节=32 时间=40ms TTL=53
来自 220.181.111.107 的回复: 字节=32 时间=38ms TTL=53
来自 220.181.111.108 的回复: 字节=32 时间=39ms TTL=53
来自 220.181.111.109 的回复: 字节=32 时间=39ms TTL=53
来自 220.181.111.111 的回复: 字节=32 时间=40ms TTL=53
来自 220.181.111.112 的回复: 字节=32 时间=41ms TTL=53
来自 220.181.111.115 的回复: 字节=32 时间=39ms TTL=53
来自 220.181.111.116 的回复: 字节=32 时间=39ms TTL=53
来自 220.181.111.117 的回复: 字节=32 时间=41ms TTL=53
来自 220.181.111.118 的回复: 字节=32 时间=40ms TTL=53
来自 220.181.111.119 的回复: 字节=32 时间=39ms TTL=53
来自 220.181.111.120 的回复: 字节=32 时间=39ms TTL=53
来自 220.181.111.122 的回复: 字节=32 时间=39ms TTL=53
来自 220.181.111.123 的回复: 字节=32 时间=38ms TTL=53
来自 220.181.111.124 的回复: 字节=32 时间=38ms TTL=53
来自 220.181.111.125 的回复: 字节=32 时间=39ms TTL=53
来自 220.181.111.126 的回复: 字节=32 时间=41ms TTL=53
来自 220.181.111.127 的回复: 字节=32 时间=41ms TTL=53
来自 220.181.111.128 的回复: 字节=32 时间=40ms TTL=53
来自 220.181.111.129 的回复: 字节=32 时间=40ms TTL=53
来自 220.181.111.130 的回复: 字节=32 时间=38ms TTL=53
来自 220.181.111.131 的回复: 字节=32 时间=40ms TTL=53
来自 220.181.111.132 的回复: 字节=32 时间=42ms TTL=53
来自 220.181.111.134 的回复: 字节=32 时间=40ms TTL=53
来自 220.181.111.135 的回复: 字节=32 时间=38ms TTL=53
来自 220.181.111.136 的回复: 字节=32 时间=39ms TTL=53
来自 220.181.111.137 的回复: 字节=32 时间=41ms TTL=53
来自 220.181.111.138 的回复: 字节=32 时间=40ms TTL=53
来自 220.181.111.140 的回复: 字节=32 时间=41ms TTL=53
来自 220.181.111.141 的回复: 字节=32 时间=40ms TTL=53
来自 220.181.111.142 的回复: 字节=32 时间=39ms TTL=53
来自 220.181.111.144 的回复: 字节=32 时间=39ms TTL=53
来自 220.181.111.146 的回复: 字节=32 时间=39ms TTL=53
来自 220.181.111.147 的回复: 字节=32 时间=38ms TTL=53
来自 220.181.111.148 的回复: 字节=32 时间=39ms TTL=53
来自 220.181.111.149 的回复: 字节=32 时间=39ms TTL=53
来自 220.181.111.150 的回复: 字节=32 时间=42ms TTL=53
来自 220.181.111.151 的回复: 字节=32 时间=40ms TTL=53
来自 220.181.111.154 的回复: 字节=32 时间=42ms TTL=53
来自 220.181.111.155 的回复: 字节=32 时间=37ms TTL=53
来自 220.181.111.156 的回复: 字节=32 时间=39ms TTL=53
来自 220.181.111.157 的回复: 字节=32 时间=41ms TTL=53
来自 220.181.111.158 的回复: 字节=32 时间=40ms TTL=53
来自 220.181.111.160 的回复: 字节=32 时间=39ms TTL=53
来自 220.181.111.161 的回复: 字节=32 时间=40ms TTL=53
来自 220.181.111.162 的回复: 字节=32 时间=40ms TTL=53
来自 220.181.111.163 的回复: 字节=32 时间=38ms TTL=53
来自 220.181.111.164 的回复: 字节=32 时间=40ms TTL=53
来自 220.181.111.166 的回复: 字节=32 时间=41ms TTL=53
来自 220.181.111.167 的回复: 字节=32 时间=40ms TTL=53
来自 220.181.111.168 的回复: 字节=32 时间=40ms TTL=53
来自 220.181.111.169 的回复: 字节=32 时间=39ms TTL=53
来自 220.181.111.170 的回复: 字节=32 时间=40ms TTL=53
来自 220.181.111.171 的回复: 字节=32 时间=39ms TTL=53
来自 220.181.111.172 的回复: 字节=32 时间=41ms TTL=53
来自 220.181.111.173 的回复: 字节=32 时间=37ms TTL=53
来自 220.181.111.174 的回复: 字节=32 时间=38ms TTL=53
来自 220.181.111.175 的回复: 字节=32 时间=40ms TTL=53
来自 220.181.111.176 的回复: 字节=32 时间=39ms TTL=53
来自 220.181.111.177 的回复: 字节=32 时间=41ms TTL=53
来自 220.181.111.178 的回复: 字节=32 时间=40ms TTL=53
来自 220.181.111.179 的回复: 字节=32 时间=40ms TTL=53
来自 220.181.111.181 的回复: 字节=32 时间=39ms TTL=53
来自 220.181.111.182 的回复: 字节=32 时间=39ms TTL=53
来自 220.181.111.184 的回复: 字节=32 时间=40ms TTL=53
来自 220.181.111.185 的回复: 字节=32 时间=39ms TTL=53
来自 220.181.111.190 的回复: 字节=32 时间=39ms TTL=53
来自 220.181.111.191 的回复: 字节=32 时间=39ms TTL=53
来自 220.181.111.192 的回复: 字节=32 时间=40ms TTL=53
来自 220.181.111.193 的回复: 字节=32 时间=38ms TTL=53
来自 220.181.111.194 的回复: 字节=32 时间=39ms TTL=53
来自 220.181.111.197 的回复: 字节=32 时间=39ms TTL=53
来自 220.181.111.198 的回复: 字节=32 时间=39ms TTL=53
来自 220.181.111.199 的回复: 字节=32 时间=39ms TTL=53
来自 220.181.111.200 的回复: 字节=32 时间=39ms TTL=53
来自 220.181.111.203 的回复: 字节=32 时间=38ms TTL=53
来自 220.181.111.204 的回复: 字节=32 时间=39ms TTL=53
来自 220.181.111.205 的回复: 字节=32 时间=39ms TTL=53
来自 220.181.111.207 的回复: 字节=32 时间=39ms TTL=53
来自 220.181.111.208 的回复: 字节=32 时间=39ms TTL=53
来自 220.181.111.209 的回复: 字节=32 时间=39ms TTL=53
来自 220.181.111.210 的回复: 字节=32 时间=39ms TTL=53
来自 220.181.111.211 的回复: 字节=32 时间=39ms TTL=53
来自 220.181.111.212 的回复: 字节=32 时间=38ms TTL=53
来自 220.181.111.214 的回复: 字节=32 时间=41ms TTL=53
来自 220.181.111.215 的回复: 字节=32 时间=39ms TTL=53
来自 220.181.111.216 的回复: 字节=32 时间=40ms TTL=53
来自 220.181.111.217 的回复: 字节=32 时间=40ms TTL=53
来自 220.181.111.218 的回复: 字节=32 时间=37ms TTL=53
来自 220.181.111.219 的回复: 字节=32 时间=39ms TTL=53
来自 220.181.111.220 的回复: 字节=32 时间=42ms TTL=53
来自 220.181.111.222 的回复: 字节=32 时间=40ms TTL=53
来自 220.181.111.223 的回复: 字节=32 时间=39ms TTL=53
来自 220.181.111.224 的回复: 字节=32 时间=41ms TTL=53
来自 220.181.111.225 的回复: 字节=32 时间=40ms TTL=53
来自 220.181.111.226 的回复: 字节=32 时间=39ms TTL=53
来自 220.181.111.227 的回复: 字节=32 时间=39ms TTL=53
来自 220.181.111.228 的回复: 字节=32 时间=40ms TTL=53
来自 220.181.111.230 的回复: 字节=32 时间=37ms TTL=53
来自 220.181.111.232 的回复: 字节=32 时间=39ms TTL=53
来自 220.181.111.233 的回复: 字节=32 时间=38ms TTL=53
来自 220.181.111.234 的回复: 字节=32 时间=38ms TTL=53
来自 220.181.111.235 的回复: 字节=32 时间=40ms TTL=53
来自 220.181.111.236 的回复: 字节=32 时间=41ms TTL=54
来自 220.181.111.238 的回复: 字节=32 时间=41ms TTL=54
来自 220.181.111.239 的回复: 字节=32 时间=37ms TTL=54
来自 220.181.111.241 的回复: 字节=32 时间=40ms TTL=53
来自 220.181.111.245 的回复: 字节=32 时间=40ms TTL=53
来自 220.181.111.249 的回复: 字节=32 时间=40ms TTL=53