标题: [网络连接] [已解决]批处理怎样PING局域网段内所有IP并输出不通的IP地址? [打印本页]
作者: teninlove 时间: 2010-3-19 16:14 标题: [已解决]批处理怎样PING局域网段内所有IP并输出不通的IP地址?
题目说的很饶舌……
批处理的效果就是从XXX.XXX.XXX.1 PING到 XXX.XXX.XXX.255
每个IP都-N 1
然后将没有PING通的IP输出在文本里。
或者将PING通的输出文本也可以。
我根据网上整理了一个- @Echo off
- date /t > IPList.txt
- time /t >> IPList.txt
- echo =========== >> IPList.txt
- For /L %%f in (1,1,5) Do Ping.exe -n 1 59.73.195.%%f
- Find
- "Request timed out." & echo 59.73.195.%%f Timed Out >>
- IPList.txt
- pause
复制代码
但是不起作用,最后输出的文本如下面:- 2010-03-19 星期五
- 15:39
- ===========
复制代码
竟然没有输出结果
从1 PING 到5 ,都没有PING通
按道理应该输出:- 2010-03-19 星期五
- 15:39
- ===========
- 59.73.195.1
- 59.73.195.2
- 59.73.195.3
- 59.73.195.4
- 59.73.195.5
复制代码
请同事们指教。
[ 本帖最后由 teninlove 于 2010-3-20 08:14 编辑 ]
作者: teninlove 时间: 2010-3-19 16:41
什么个情况啊????
作者: BatCoder 时间: 2010-3-19 16:45
- @echo off
- date /t >IPList.txt
- time /t >>IPList.txt
- echo ===========>>IPList.txt
- for /l %%f in (1,1,5) do (
- ping.exe -n 1 59.73.195.%%f | find "Request timed out." && echo 59.73.195.%%f Timed Out>>IPList.txt
- )
复制代码
作者: gshccr 时间: 2010-3-19 16:48
-
- @Echo off
- date /t > IPList.txt
- time /t >> IPList.txt
- echo =========== >> IPList.txt
- For /L %%f in (1,1,5) Do (Ping.exe -n 1 59.73.195.%%f | Find /i "Request timed out."&&echo 59.73.195.%%f Timed Out >>IPList.txt)
- pause
复制代码
其实直接用II就可以了!不用find
作者: jcy0307 时间: 2010-3-19 19:15
这个是自己闲来无事的时候做的,还未完成。不过满足你的需求足够了!- @echo off
- title 查看局域网在线计算机 ****jcy0307****
- color 0a
- setlocal EnableDelayedExpansion
- if exist ip.txt del ip.txt
- set a=1
- :start
- cls
- echo.
- echo 正在测试--192.168.0.%a%
- ping 192.168.0.%a% -w 1 -n 1 | find /i "Lost = 1" && set c=1||set c=0
- if !c!==0 (echo 192.168.0.%a% >>IP.txt)
- set /a a=%a%+1
- if "%a%"=="255" goto ip
- goto start
- :ip
- cls
- echo.
- set b=0
- for /f "delims= " %%i in (ip.txt) do (
- set /a b=!b!+1
- echo %%i>nul
- )
- echo 当前在线计算机
- echo ===============================================================================
- echo.
- echo 计算机名 IP 状 态 开放端口
- echo.
- for /f "delims= " %%j in (ip.txt) do (
- echo %%j 在线
- )
- echo ===============================================================================
- echo 当前有!b!台计算机在线
- pause>nul
- exit
复制代码
作者: teninlove 时间: 2010-3-19 19:35
经测试3、4、5楼的均可用。
5楼的专业令人肃然起敬,忽略了回包周期,要比3、4楼的快了很多。
同谢3、4、5
作者: neorobin 时间: 2010-3-19 21:33
要提高效率的话, 请参考此帖
http://bbs.bathome.net/viewthread.php?tid=6754&page=1#pid43901
修改一下就可高效的达到楼主的意图
作者: jcy0307 时间: 2010-3-19 21:39
主动给已获解决的求助帖标题加注[已解决]字样的,将会得到管理层的加分奖励。
记得加上哦
作者: hacker85 时间: 2011-12-16 14:02
回复 7# neorobin
我去看了这个地址处的代码,结果是不能运行。
我的系统是win7
IP段是:10.64.68
作者: hacker85 时间: 2011-12-16 14:05
回复 6# teninlove
我不知道你是怎么测试的,我的系统是win7,但是我的测试结果是:
5 楼 :无论有多少人在线或者不在线,它返回的结果都是在线,比如你想ping10个人,结果它返回10个在线,意味着它并没有工作呀
3楼和4楼的代码实际上是一样的,其实际的运行结果也是一样的:IPList.txt中只有时间和=======,剩下再无别的内容了。
作者: beck1321 时间: 2012-9-13 20:46
mark之~~~~~~~~~~~~~~~
欢迎光临 批处理之家 (http://www.bathome.net/) |
Powered by Discuz! 7.2 |