中国DOS联盟

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

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

中国DOS联盟论坛
现在时间是 2026-08-11 08:58
中国DOS联盟论坛 » DOS批处理 & 脚本技术(批处理室) » [求助]用批处理来判断局域网机器开机的数量 查看 1,344 回复 14
楼 主 [求助]用批处理来判断局域网机器开机的数量 发表于 2009-02-18 07:10 ·  中国 广东 潮州 电信
初级用户
积分 41
发帖 37
注册 2009-01-09 20:01
17年会员
UID 136255
性别 男
来自 四川南充
状态 离线
现在小弟有一个问题请求帮助,用批处理来判断局域网机器开机的数量,把数量显示出来,并取得所开机机器的名称与ip,存为文本文件按如下排列
A211 192.168.0.1
A022 192.168.0.2
………
细想了一下用批处理可以做到但是我不知道该从何处入手。
望各位帮帮我把代码贴出来。
echo @echo off>TEST.bat
2 发表于 2009-02-18 13:28 ·  中国 上海 杨浦区 电信
高级用户
★★★
积分 916
发帖 377
注册 2004-03-08 00:00
22年会员
UID 19523
性别 男
状态 离线
大家能帮我完善一下扫描局域网mac地址并转换成modiip
http://www.cn-dos.net/forum/viewthread.php?tid=42427&fpage=1&highlight=modiip

偶都是用modiip的,modiip是一款非常好的根据机器mac地址更改机器网络设置的软件非常不错。
nbtscan也不错扫描速度非常快
3 发表于 2009-02-18 14:42 ·  中国 广东 潮州 电信
初级用户
积分 41
发帖 37
注册 2009-01-09 20:01
17年会员
UID 136255
性别 男
来自 四川南充
状态 离线
感谢二楼,但是我的意思是不用其他工具,用批处理来达到我要求。
echo @echo off>TEST.bat
4 发表于 2009-02-18 20:19 ·  中国 广东 潮州 电信
初级用户
积分 41
发帖 37
注册 2009-01-09 20:01
17年会员
UID 136255
性别 男
来自 四川南充
状态 离线
@for /L %%A in (1,1,254) do ping -a -n 1 -l 16 -w 100 192.168.0.%%A |find "Reply">>testa.txt
在网络畅通的情况下用以上代码简单判断那些机器开机,但是若要完整的解决我的问题就不知道该怎样写了。
echo @echo off>TEST.bat
5 发表于 2009-02-18 20:43 ·  中国 北京 鹏博士BGP
初级用户
积分 68
发帖 37
注册 2008-08-15 11:07
17年会员
UID 123237
性别 男
状态 离线
想问一下二楼的同志 有装软防火墙的机器也可以扫描到吗?
6 发表于 2009-02-18 22:32 ·  中国 安徽 六安 电信
初级用户
★★
积分 122
发帖 54
注册 2006-11-03 04:24
19年会员
UID 69380
性别 男
状态 离线
我不会写代码,提供一个思路
1. PING全网段地址
2. 查看ARP表

原因: 如果不看ARP表,靠PING是不行的,如果有防火墙,PING就会失效,但ARP会有回包。
7 发表于 2009-02-19 00:54 ·  中国 广东 潮州 电信
初级用户
积分 41
发帖 37
注册 2009-01-09 20:01
17年会员
UID 136255
性别 男
来自 四川南充
状态 离线
谢谢六楼的思路,但是我也不会写代码,一起等吧。肯定有人能做到。
echo @echo off>TEST.bat
8 发表于 2009-02-19 01:09 ·  中国 北京 中国科学院研究生院玉泉四公寓
银牌会员
★★★
积分 1,187
发帖 555
注册 2006-12-21 07:35
19年会员
UID 74129
性别 男
状态 离线
Originally posted by gdyabc at 2009-2-19 00:54:
谢谢六楼的思路,但是我也不会写代码,一起等吧。肯定有人能做到。




for /f %%a in ('arp -a^|findstr ""^|find /v ":"') do @echo %%a


Test Successfully!
本帖最近评分记录 (共 1 条) 点击查看详情
评分人分数时间
gdyabc +1 2009-02-19 09:02
9 发表于 2009-02-19 01:14 ·  中国 北京 中国科学院研究生院玉泉四公寓
银牌会员
★★★
积分 1,187
发帖 555
注册 2006-12-21 07:35
19年会员
UID 74129
性别 男
状态 离线
问题是 全网段ping后,
很可能因为没有及时利用存活的ip
导致存活IP的丢失

Over
10 发表于 2009-02-19 05:25 ·  中国 广东 东莞 电信
初级用户
积分 50
发帖 44
注册 2008-12-07 13:05
17年会员
UID 133134
性别 男
状态 离线
Originally posted by jy02116916 at 2009-2-18 20:43:
想问一下二楼的同志 有装软防火墙的机器也可以扫描到吗?

不错 受益了
11 发表于 2009-02-19 05:48 ·  中国 广东 广州 天河区 电信
金牌会员
★★★★
一叶枝头,万树皆春
积分 2,564
发帖 1,127
注册 2006-12-25 22:57
19年会员
UID 74552
性别 男
状态 离线

Dim Xml,Wsh
Set Xml=CreateObject("Msxml2.XMLHTTP")
Set Wsh=CreateObject("WScript.Shell")
For i= 0 To 256
Xml.Open "Get","http://192.168.0."&i,True
Xml.Send
WScript.Sleep 30
If (i mod 64)=0 Then
Wsh.Run "CMD /c ""ARP -A|findstr /v /i ""inter"""" >>ss.txt",0,True
End If
Next



For /F "tokens=1,2" %%a in (ss.txt) Do Set %%a=%%b
Set 192|find /v "00-00-00"


这样比PING快一点
本帖最近评分记录 (共 1 条) 点击查看详情
评分人分数时间
gdyabc +1 2009-02-19 08:51
49206C6F766520796F752067757973 54656C3A3133383238343036373837
12 发表于 2009-02-19 11:19 ·  中国 广东 中山 电信
新手上路
积分 12
发帖 15
注册 2009-02-17 13:15
17年会员
UID 139068
性别 男
状态 离线
Originally posted by scriptor at 2009-2-19 01:09:




for /f %%a in ('arp -a^|findstr ""^|find /v ":"') do @echo %%a


Test Successfully!


想请教下一个地方
就是 ^| 这个地方
我知道^是去掉特殊符号的功能,把它当作一个字符来用。
这里我看不太懂哦,我把^去掉,却是报错。
有谁了解的请都赐教下。
13 Re 12楼 发表于 2009-02-19 12:10 ·  美国 惠普HP
版主
★★★★★
积分 9,023
发帖 5,017
注册 2007-05-31 19:39
19年会员
UID 89899
性别 男
状态 离线
请教for语句中出现的^符号的含义
http://www.cn-dos.net/forum/viewthread.php?tid=29426
本帖最近评分记录 (共 1 条) 点击查看详情
评分人分数时间
DwD +1 2009-02-19 12:32
14 发表于 2009-02-19 14:14 ·  中国 江西 南昌 电信
初级用户
积分 46
发帖 25
注册 2008-11-05 20:08
17年会员
UID 130109
性别 男
状态 离线
八楼的好强大,arp很有用,我得学习学习
15 发表于 2009-02-19 20:27 ·  中国 广东 潮州 电信
初级用户
积分 41
发帖 37
注册 2009-01-09 20:01
17年会员
UID 136255
性别 男
来自 四川南充
状态 离线
等了两天,友友们帮帮楼主完成问题,用批处理,或vb都可以。急。
echo @echo off>TEST.bat
论坛跳转: