中国DOS联盟论坛

中国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