作者:zw750516 | 时间:2007-08-04 20:22 | 标题:254线程(汗!!!) ping 任意网段的批处理(己测试)

//以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 //删除临时文件
[
Last edited by zw750516 on 2007-8-4 at 09:08 PM ]
作者:zw750516 | 时间:2007-08-05 15:16
虽然不是很成熟的作品,但实用啊,怎么就没人讨论讨论指点指点啊,晕哦!!!
作者:zw750516 | 时间:2007-08-06 11:05
语句太繁索了,有没高手帮改下啊!!!
作者:429499381 | 时间:2007-08-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-08-17 11:02
RE 429499381:
你的也只有当关网段的网关呀...
呵呵...
作者:qzwqzw | 时间:2007-08-17 11:59
这些都不是很成熟的作品
可以借鉴一下以前的讨论
作者:zw750516 | 时间:2007-08-29 17:09
Originally posted by 429499381 at 2007-8-11 04:00 AM:
你的P处理的确许要很多简化的地方!! 我怀疑你的批处理根本得不到你想要的结果!!! 最多是得到自己的网关!!
看看我的
@ipconfig /all | f ...
我的批处理语句是繁琐,但出来的结果肯定是操作机所在网段的所有在线IP信息!大家可以测试下再来评论。