![]() |
中国DOS联盟-- 联合DOS 推动DOS 发展DOS --联盟域名:www.cn-dos.net 论坛域名:www.cn-dos.net/forum |
| 游客 | 登录 | 注册 | 会员 | 搜索 | 中国DOS联盟 |
|
中国DOS联盟论坛 现在时间是 2026-08-09 10:26 |
共 47,811 主题排行 / 349,895 发帖 / 今日 0 篇 / 48,253 会员排行 |
| DOS批处理 & 脚本技术(批处理室) » 判断局域网不存在主机IP |
| 可打印版本 1,419 / 13 |
| 第1楼 wen513520 | 发表于 2008-08-14 19:53 |
| 初级用户 发帖 44 积分 122 | |
|
判断局域网不存在主机IP @Echo off
setlocal enabledelayedexpansion date /t > IPList.txt time /t >> IPList.txt echo =========== >> IPList.txt For /L %%f in (1,1,10) do ping 192.168.0.%%f -n 1 & find "request timed out." && echo 192.168.0.%%f request timed out.>> IPList.txt cls Echo Finished! @Echo on Notepad.exe IPList.txt pause 为什么会PING到第一个IP的时候就运行不下去了,望各位大侠告知! |
|
| 第2楼 pusofalse | 发表于 2008-08-14 22:31 |
| 银牌会员 发帖 646 积分 1,604 | |
|
ping 192.168.0.%%f -n 1 & find "request timed out"
这一句。。。从哪里查找"request timed out"? |
|
| 第3楼 wen513520 | 发表于 2008-08-15 12:31 |
| 初级用户 发帖 44 积分 122 | |
|
@Echo off
setlocal enabledelayedexpansion date /t > IPList.txt time /t >> IPList.txt echo =========== >> IPList.txt For /L %%f in (1,1,10) do ping 192.168.0.%%f -n 1 for /l %%i in (1,1,10) do ( for /f "tokens=1" %%j in (arp.txt) do if not 192.168.0.%%i==%%j echo 192.168.0.%%i>>IPList.txt ) cls Echo Finished! @Echo on Notepad.exe IPList.txt pause 为什么不能分析出不相同的IP 而是把循环内的所有IP都写进IPList.txt文本文档里面 |
|
| 第4楼 wen513520 | 发表于 2008-08-15 13:26 |
| 初级用户 发帖 44 积分 122 | |
|
没有人帮我解决吗???
|
|
| 第5楼 huahua0919 | 发表于 2008-08-15 14:42 |
| 银牌会员 发帖 780 积分 1,608 | |
|
用errorlevel来判断
if %errorlevel% equ 1 if %errorlevel% equ 0 |
|
| 第6楼 HAT | 发表于 2008-08-15 14:53 |
| 版主 发帖 5,017 积分 9,023 | |
|
你没有看到2楼想帮你解决吗???
别的不说,至少先把find前面的&改成|啊。 |
|
| 第7楼 wen513520 | 发表于 2008-08-15 15:47 |
| 初级用户 发帖 44 积分 122 | |
|
五楼的朋友
在哪里用if %errorlevel% equ 1 if %errorlevel% equ 0 来判断 |
|
| 第8楼 wen513520 | 发表于 2008-08-15 15:50 |
| 初级用户 发帖 44 积分 122 | |
|
在线等解决!!!
|
|
| 第9楼 huahua0919 | 发表于 2008-08-15 16:00 |
| 银牌会员 发帖 780 积分 1,608 | |
|
0-10内活动主机
|
|
| 第10楼 zcnvnv | 发表于 2008-08-15 16:05 |
| 初级用户 发帖 36 积分 114 | |
|
我自己很久以前做的扫描工具,要知道ping扫描的速度是奇慢的。
下面代码自动判断你的局域网的ip段 setlocal enabledelayedexpansion for /f "skip=7 tokens=2 delims=:" %%i in ('ipconfig') do ( set /a num+=1 if "!num!"=="1" echo 本机IP为:%%i&&set "ip=%%i"&&set "ip=!ip:~0,12!" if "!num!"=="2" echo 子网掩码为:%%i if "!num!"=="3" echo 本机网关为:%%i ) echo. echo. echo. 局域网在线IP列表 for /l %%i in (1,1,254) do ( set "ip=!ip!%%i ping -n 1 !ip!>nul && echo. !ip! ) echo. ok,探测完成! echo. echo. 按任意键返回。。。 setlocal disabledelayedexpansion pause>nul |
|
| 第11楼 zcnvnv | 发表于 2008-08-15 16:07 |
| 初级用户 发帖 36 积分 114 | |
|
上面代码,你可以自己简化一下。我当时做的比较粗糙
|
|
| 第12楼 huahua0919 | 发表于 2008-08-15 16:09 |
| 银牌会员 发帖 780 积分 1,608 | |
|
你这个就不是ping 了啊
|
|
| 第13楼 bat-zw | 发表于 2008-08-15 19:39 |
| 金牌会员 发帖 1,276 积分 3,105 | |
|
扫描用ping /n 1 *.*.*.*是可以的,但建议采用多线程,如机器好的话可以采用255线程,如192.168.1网段:
[ Last edited by bat-zw on 2008-8-15 at 07:41 PM ] |
|
| 第14楼 dato | 发表于 2008-08-17 01:48 |
| 高级用户 发帖 377 积分 916 | |
|
以前好像讨论过类似主题的ping不是很准确的,但是如果你在自己管理的局域网那将是非常快速。
效率不是很高 ----------------------------- rpclink.cmd+doit.cmd doit.cmd 大家有没有办法直接根据本机的ip设定来直接修改192.168.1为对应本机的网段,省得去不同的机房都要更改一下 |
|
|
[ 联系联盟系统管理团队 -
中国DOS联盟 -
标准版 ] Sponsored by ifanr Inc | © 2001–2023 |