Board logo

标题: 254线程(汗!!!) ping 任意网段的批处理(己测试) [打印本页]

作者: zw750516     时间: 2007-8-4 20:22    标题: 254线程(汗!!!) ping 任意网段的批处理(己测试)
<img src="images/smilies/face-raspberry.png" align="absmiddle" border="0"> //以192.168.1.网段为例
ipconfig /all >ipconfig.txt
find "Default Gateway" ipconfig.txt >IP.txt
for /f "skip=2 tokens=13" %%a in (ip.txt) do echo %%a >ip.txt //显示为192.168.1.1 (网关)
setlocal enabledelayedexpansion
for /f "tokens=*" %%d in (ip.TXT) do (
set str=%%d
echo !str:~0,-4! >ip.TXT) //显示为192.168.1. 后有空格
for /f "delims=" %%c in (ip.txt) do set a=%%c
if " " == "%a:~-1,1%" (set "a=%a:~0,-1%" ) //通过处理消除空格
set i=%a%
for /l %%p in (1,1,254) do @echo ping %i%%%p -n 1 >%%p.bat //输入网段变量
for /l %%p in (1,1,254) do @echo exit >>%%p.bat //加入结束命令
for /l %%p in (1,1,254) do start %%p.bat //254线程拼命令
ping 1.1.1.1 -n 2 //作用在延时(只想了个简单的)
arp -a >arp.txt //显示网段在线 ip 和 mac .现在的xp不先拼通arp -a 是没用的,大家可以试下,只会显示网关信息.
del ipconfig.txt ip.txt
for /l %%p in (1,1,254) do del %%p.bat //删除临时文件
<img src="images/smilies/face-wink.png" align="absmiddle" border="0">

Last edited by zw750516 on 2007-8-4 at 09:08 PM ]

作者: zw750516     时间: 2007-8-5 15:16
虽然不是很成熟的作品,但实用啊,怎么就没人讨论讨论指点指点啊,晕哦!!!

作者: zw750516     时间: 2007-8-6 11:05
语句太繁索了,有没高手帮改下啊!!!

作者: 429499381     时间: 2007-8-11 04:00
你的P处理的确许要很多简化的地方!! 我怀疑你的批处理根本得不到你想要的结果!!! 最多是得到自己的网关!!

看看我的


@ipconfig /all | find "Default Gateway" >c:\1.txt

@for /f "tokens=1,2 delims=:" %%a in (c:\1.txt) do set ip=%%b

@echo %ip%

@set i=%ip:~1,9%

:loop

@set /a a+=1

@start /i /min ping -n 2 -w 500 %i%%a% >nul

@if "%a%"=="20" exit

@goto :loop

Last edited by 429499381 on 2007-8-11 at 04:35 AM ]

作者: zouzhxi     时间: 2007-8-17 11:02
RE 429499381:

你的也只有当关网段的网关呀...

呵呵...

作者: qzwqzw     时间: 2007-8-17 11:59
这些都不是很成熟的作品
可以借鉴一下以前的讨论

作者: zw750516     时间: 2007-8-29 17:09
Originally posted by 429499381 at 2007-8-11 04:00 AM:
你的P处理的确许要很多简化的地方!! 我怀疑你的批处理根本得不到你想要的结果!!! 最多是得到自己的网关!!

看看我的


@ipconfig /all | f ...

我的批处理语句是繁琐,但出来的结果肯定是操作机所在网段的所有在线IP信息!大家可以测试下再来评论。