|
wen513520
初级用户
积分 122
发帖 44
注册 2007-8-30
状态 离线
|
『楼 主』:
判断局域网不存在主机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的时候就运行不下去了,望各位大侠告知!
|
|
2008-8-14 19:53 |
|
|
pusofalse
银牌会员
积分 1604
发帖 646
注册 2008-4-13
状态 离线
|
『第
2 楼』:
ping 192.168.0.%%f -n 1 & find "request timed out"
这一句。。。从哪里查找"request timed out"?
|
心绪平和,眼藏静谧,无比安稳的火... Purification of soul...Just a false...^_^ |
|
2008-8-14 22:31 |
|
|
wen513520
初级用户
积分 122
发帖 44
注册 2007-8-30
状态 离线
|
『第
3 楼』:
@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文本文档里面
|
|
2008-8-15 12:31 |
|
|
wen513520
初级用户
积分 122
发帖 44
注册 2007-8-30
状态 离线
|
|
2008-8-15 13:26 |
|
|
huahua0919
银牌会员
积分 1608
发帖 780
注册 2007-10-7
状态 离线
|
『第
5 楼』:
用errorlevel来判断
if %errorlevel% equ 1
if %errorlevel% equ 0
|
|
2008-8-15 14:42 |
|
|
HAT
版主
积分 9023
发帖 5017
注册 2007-5-31
状态 离线
|
『第
6 楼』:
你没有看到2楼想帮你解决吗???
别的不说,至少先把find前面的&改成|啊。
|
|
|
2008-8-15 14:53 |
|
|
wen513520
初级用户
积分 122
发帖 44
注册 2007-8-30
状态 离线
|
『第
7 楼』:
五楼的朋友
在哪里用if %errorlevel% equ 1
if %errorlevel% equ 0
来判断
|
|
2008-8-15 15:47 |
|
|
wen513520
初级用户
积分 122
发帖 44
注册 2007-8-30
状态 离线
|
|
2008-8-15 15:50 |
|
|
huahua0919
银牌会员
积分 1608
发帖 780
注册 2007-10-7
状态 离线
|
『第
9 楼』:
0-10内活动主机
@echo off & setlocal enabledelayedexpansion
for /l %%i in (0 1 10) do (
ping -n 1 192.168.0.%%i >nul
if !errorlevel! equ 0 echo 192.168.0.%%i
)
pause
|
|
2008-8-15 16:00 |
|
|
zcnvnv
初级用户
积分 114
发帖 36
注册 2007-12-22
状态 离线
|
『第
10 楼』:
我自己很久以前做的扫描工具,要知道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
|
|
2008-8-15 16:05 |
|
|
zcnvnv
初级用户
积分 114
发帖 36
注册 2007-12-22
状态 离线
|
『第
11 楼』:
上面代码,你可以自己简化一下。我当时做的比较粗糙
|
|
2008-8-15 16:07 |
|
|
huahua0919
银牌会员
积分 1608
发帖 780
注册 2007-10-7
状态 离线
|
|
2008-8-15 16:09 |
|
|
bat-zw
金牌会员
永远的学习者
积分 3105
发帖 1276
注册 2008-3-8
状态 离线
|
『第
13 楼』:
扫描用ping /n 1 *.*.*.*是可以的,但建议采用多线程,如机器好的话可以采用255线程,如192.168.1网段:
@echo off
for /l %%i in (1,1,254) do start /min ping /n 1 192.168.1.%%i
arp -a|findstr /v "dynamic"
pause>nul [ Last edited by bat-zw on 2008-8-15 at 07:41 PM ]
|
批处理之家新域名:www.bathome.net |
|
2008-8-15 19:39 |
|
|
dato
高级用户
积分 916
发帖 377
注册 2004-3-8
状态 离线
|
『第
14 楼』:
以前好像讨论过类似主题的ping不是很准确的,但是如果你在自己管理的局域网那将是非常快速。
效率不是很高
@echo off
del offline.txt /s
del %tmp%\online.txt /s
for /F %%i in (..\only.txt) do (
ping %%i -n 1
if ERRORLEVEL 1 (
echo %%i >> offline.txt
) else (
echo %%i >> %tmp%\online.txt
)
)
if not exist %tmp%\online.txt goto eof
..\psexec.exe -accepteula @%tmp%\online.txt -u onlyit -p "" -c -d -n 5 ..\UPDATER.EXE /q
pause
:eof -----------------------------
rpclink.cmd+doit.cmd
@echo off
echo "准备ping %1"
ping %1 -n 1 -l 2 | find "Request timed out" || goto online
cls
goto offline
:online
echo %1 >> online.txt
goto eof
:offline
echo %1 >> offline.txt
goto eof
:eof
exit doit.cmd
for /l %%i in (1,1,254) do start /min rpclink.cmd 192.168.1.%%i 大家有没有办法直接根据本机的ip设定来直接修改192.168.1为对应本机的网段,省得去不同的机房都要更改一下
|
http://dato.ys168.com
google search bot
http://dato.minidns.net/ |
|
2008-8-17 01:48 |
|