中国DOS联盟

-- 联合DOS 推动DOS 发展DOS --

联盟域名:www.cn-dos.net 论坛域名:www.cn-dos.net/forum
DOS,代表着自由开放与发展,我们努力起来,学习FreeDOS和Linux的自由开放与GNU精神,共同创造和发展美好的自由与GNU GPL世界吧!

中国DOS联盟论坛
现在时间是 2026-06-14 20:57
中国DOS联盟论坛 » DOS批处理 & 脚本技术(批处理室) » 技术探讨:编写批处理程序来ping一定ip段内存活主机
楼 主 技术探讨:编写批处理程序来ping一定ip段内存活主机 发表于 2006-12-27 00:28 ·  新西兰 奥克兰大区 奥克兰 Microsoft
高级用户
★★
积分 783
发帖 268
注册 2006-12-26 17:18
UID 74627
性别 男
状态 离线
突发奇想 希望有人跟帖:
2 发表于 2006-12-27 01:29 ·  中国 湖北 武汉 电信
版主
★★★★★
积分 11,386
发帖 4,938
注册 2006-07-23 17:10
UID 59080
状态 离线

  把要求说具体一点吧。
3 发表于 2006-12-27 01:41 ·  中国 北京 中国科学院研究生院
银牌会员
★★★
积分 1,187
发帖 555
注册 2006-12-21 07:35
UID 74129
性别 男
状态 离线
live.bat
@echo off
@for /l %%a in (1,1,254) do (ping -n 6 ip |find "Reply from" >> live.txt)
echo done
pause >nul


ip 可以自己设定,比如168.9.9.%%a 或者 168.6.%%a.9 , 但是一定有一个选项是%%a 以便扫描。
本帖最近评分记录 (共 1 条) 点击查看详情
评分人分数时间
redtek +5 2006-12-27 02:42
4 发表于 2006-12-27 02:41 ·  中国 北京 联通
金牌会员
★★★★
积分 2,902
发帖 1,147
注册 2006-09-21 12:00
UID 63324
性别 男
状态 离线
这个好玩~:)
再来一个254线程扫描的,嘿嘿~:)

(用 Start 模拟 254线程,扫描 1-254 台主机约为 20 秒)


(运行前注意: 运行后同时开启 254 个窗口 ,因为是多线程嘛~:)
(       不过没什么,哈哈……请做好心理准备~:D 
(       但是,一个窗口不到1秒钟就闪完了,所以屏幕上视觉上也就8个窗口左右)


(下面代码当都扫描完成以后,会在当前目前生成一个名为 IP.TXT 的扫描日志,打开看就行了)


@echo off

if == (Goto :Start) else (Goto :Ping)

:Start
echo.ScanTime:%time%>ip.txt&&set "ip=61.149.20"
for /L %%i in (1,1,254) do Start %~s0 %ip%.%%i
Goto :eof

:Ping
ping %1 -n 1 -w 1 >nul&&echo %1 - OK!>>ip.txt
exit



(注:上面批处理的文件名不能含有空格)




下面是扫描到的一些主机……

ScanTime:13:32:31.85
61.149.20.5 - OK!
61.149.20.7 - OK!
61.149.20.6 - OK!
61.149.20.8 - OK!
61.149.20.10 - OK!
61.149.20.14 - OK!
61.149.20.17 - OK!
61.149.20.18 - OK!
61.149.20.19 - OK!
(略……)


[ Last edited by redtek on 2006-12-26 at 02:04 PM ]
本帖最近评分记录 (共 5 条) 点击查看详情
评分人分数时间
PPdos +1 2006-12-27 04:29
scriptor +2 2006-12-27 05:56
ccwan +7 2006-12-27 05:59
lxmxn +4 2006-12-28 23:57
313885174 +2 2008-11-27 04:00
    Redtek,一个永远在网上流浪的人……

_.,-*~'`^`'~*-,.__.,-*~'`^`'~*-,._,_.,-*~'`^`'~*-,._,_.,-*~'`^`'~*-,._
5 发表于 2006-12-27 02:58 ·  中国 重庆 沙坪坝区 电信
初级用户
★★
积分 105
发帖 77
注册 2006-11-09 02:14
UID 70077
性别 男
来自 重庆
状态 离线
。。。
高人呀,我什么都不想说了
6 我也写了一个完整点的 评论一下 发表于 2006-12-27 03:23 ·  新西兰 奥克兰大区 奥克兰 Microsoft
高级用户
★★
积分 783
发帖 268
注册 2006-12-26 17:18
UID 74627
性别 男
状态 离线
@echo off
echo -----------------------------
echo 请选择你所扫描的类型
echo -----------------------------
echo .
echo [A] :IP段扫描 [B] :精确IP及端口扫描
:x
set /p choice="请输入扫描类型:A or B :"
if /i %choice%==a goto ipduan else goto y
:y
if /i %choice%==b goto ip else goto x
:ipduan
echo 进入IP段扫描模式:
set /p ipa="输入扫描的ip段前三段(例如:192.168.1):"
set /p port="输入要扫描的端口:"
for /l %%i in (1,1,255) do (telnet %ipa%.%%i %port%)

:ip
echo 进入精确扫描模式:
set /p ipa="输入扫描的ip:(例如:192.168.0.1)"
set /p port1="输入要扫描的开始端口:"
set /p port2="输入要扫描的结束端口:"
for /l %%i in (%port1%,1,%port2%) do (telnet %ipa% %%i)
pause>nul
本帖最近评分记录 (共 1 条) 点击查看详情
评分人分数时间
redtek +5 2006-12-27 21:52
7 速度很快 发表于 2006-12-27 03:37 ·  新西兰 奥克兰大区 奥克兰 Microsoft
高级用户
★★
积分 783
发帖 268
注册 2006-12-26 17:18
UID 74627
性别 男
状态 离线
但如果扫描几万个端口 同时打开几万个窗口好象要自杀?能不能进行对打开start telnet窗口的数量限制呢?虽然连接大约5秒钟后失败退出 但是打开的速度要快吧...
8 发表于 2006-12-27 05:55 ·  中国 北京 中国科学院研究生院
银牌会员
★★★
积分 1,187
发帖 555
注册 2006-12-21 07:35
UID 74129
性别 男
状态 离线
多谢redtak兄的支持啊
我还要多向你学习呢!
9 发表于 2006-12-27 06:16 ·  中国 北京 中国科学院研究生院
银牌会员
★★★
积分 1,187
发帖 555
注册 2006-12-21 07:35
UID 74129
性别 男
状态 离线
噢,原来已经有这个帖子了,看来我多此一举啊
10 发表于 2006-12-27 06:22 ·  中国 河北 廊坊 三河市 移动
金牌会员
★★★★
积分 2,725
发帖 1,160
注册 2006-09-23 12:00
UID 63486
来自 河北廊坊
状态 离线
删除两个帖子内容并非灌水,楼主勿怪。
三人行,必有吾师焉。 学然后知不足,教然后知困,然后能自强也。
11 发表于 2006-12-27 06:30 ·  中国 北京 联通
金牌会员
★★★★
积分 2,902
发帖 1,147
注册 2006-09-21 12:00
UID 63324
性别 男
状态 离线
回PPdos兄,要是用VBS来扫描端口不会显示象中了炸弹一样的满屏皆带窗口,哈哈……

论坛搜索一下,好象以前有网友用VBS编过一个端口扫描的代码~:)

(我写的那个满屏弹窗口的代码纯属另类玩笑~:)
    Redtek,一个永远在网上流浪的人……

_.,-*~'`^`'~*-,.__.,-*~'`^`'~*-,._,_.,-*~'`^`'~*-,._,_.,-*~'`^`'~*-,._
12 谢谢你的贴 我学到了好多东西 收藏了:P 发表于 2006-12-27 14:17 ·  新西兰 奥克兰大区 奥克兰 Microsoft
高级用户
★★
积分 783
发帖 268
注册 2006-12-26 17:18
UID 74627
性别 男
状态 离线
Originally posted by redtek at 2006-12-26 01:41 PM:
这个好玩~:)
再来一个254线程扫描的,嘿嘿~:)

(用 Start 模拟 254线程,扫描 1-254 台主机约为 20 秒)


(运行前注意: 运行后堮..
13 发表于 2006-12-28 04:29 ·  中国 广东 佛山 电信
初级用户
积分 26
发帖 14
注册 2006-12-26 23:37
UID 74645
性别 男
状态 离线
我有学到一点了
14 发表于 2006-12-28 23:26 ·  新西兰 奥克兰大区 奥克兰 Microsoft
高级用户
★★
积分 783
发帖 268
注册 2006-12-26 17:18
UID 74627
性别 男
状态 离线
Redtek兄所写精短之作着实让我研究好几天 而又无果 才知批处理之深邃....

希望能得各位指点,疑惑有三:

1.变量 %1在此是何意义

2.虽知start不支持长文件名 为何 start 后跟 %~s0 没有出错 并且各个字符又如 何解释呢?

3.是怎样通过&&准确判断ping到的主机是否存活 并写入.txt的呢?

初入批门 小弟不才疑问多多 还请各位多多指点!
15 发表于 2006-12-28 23:57 ·  中国 湖北 武汉 电信
版主
★★★★★
积分 11,386
发帖 4,938
注册 2006-07-23 17:10
UID 59080
状态 离线

  哈哈,原来 Redtek 兄的批处理是个递归过程啊,现在才看到。加分再说。
论坛跳转: