中国DOS联盟论坛

中国DOS联盟

-- 联合DOS 推动DOS 发展DOS --
联盟域名:www.cn-dos.net 论坛域名:www.cn-dos.net/forum
游客 | 登录 | 注册 | 会员 | 搜索 | 中国DOS联盟
中国DOS联盟论坛
现在时间是 2026-08-13 17:02
47,811 主题排行 / 349,897 发帖 / 今日 0 篇 / 48,256 会员排行
DOS批处理 & 脚本技术(批处理室) » 高手这么多,谁写一个扫描本网内IP和mac!
可打印版本  7,732 / 51
第46楼 everest79 发表于 2006-12-31 11:45
金牌会员 发帖 1,127 积分 2,564
不能确定缓存刷新时间,万一PING时间长了,可能就刷掉了,还有我说256是指静态MAC,也就是绑定的,非绑定的没条件测试
1,1,20是我在本地测试时填的,没有改回来
非三类掩码的计算没有写,因为子网IP段是各类IP的一部分,还是可以PING到,只要不怕耗时间^_^
第47楼 everest79 发表于 2006-12-31 11:47
金牌会员 发帖 1,127 积分 2,564
附一个很早以前写的批处理
第48楼 dikex 发表于 2006-12-31 12:06
高级用户 发帖 366 积分 788
Originally posted by everest79 at 2006-12-30 10:45 PM:
不能确定缓存刷新时间,万一PING时间长了,可能就刷掉了,还有我说256是指静态MAC,也就是绑定的,非绑定的没条件测试
1,1,20是我在本地测试时填的 ...


对此我们可以作出以下的改动

@echo off
arp /d
FOR /L %%i IN (1,1,255) Do start /b ping 192.168.1.%%i -n 1 -w 0 >nul
arp /a | find "dynamic">IP.txt
type ip.txt
pause


我们的目的只是刷新本地的arp缓存,而当我们发出一个请求的arp数据包,只要对方的主机在就会回应那个arp数据包,我们本机的arp缓存就会刷新,而那个ping的数据包我们根本不用理会它,所以可以把等待时间设为0;
而且在for循环里使用start可以使得ping能并行运行,可以大大缩短运行的时间(代价是资源占用率高),由于运行地很快到最后会发现有一些mac全部为0的地址还没有消失,这是使用find寻找带用dynamic的行即可;
个人觉得这个批处理在局域网中还是挺有用的。

[ Last edited by dikex on 2006-12-30 at 11:08 PM ]
第49楼 INeverAsk 发表于 2007-11-04 23:19
初级用户 发帖 42 积分 97
此贴收下,多谢
第50楼 niao22 发表于 2008-04-01 00:10
新手上路 发帖 7 积分 14
如果跨VLAN,这结就不好用了
第51楼 Climbing 发表于 2008-04-01 00:52
铂金会员 发帖 2,753 积分 6,962 来自 河北保定
这个程序应该自动检测本机的IP地址及子网掩码,然后根据IP地址和子网掩码判断局域网的大小,然后再进行检测,呵呵。
第52楼 densn 发表于 2008-04-02 22:45
初级用户 发帖 14 积分 29
上一页  1 2 3 4
[ 联系联盟系统管理团队 - 中国DOS联盟 - 标准版 ]
Sponsored by ifanr Inc | © 2001–2023