[新手上路]批处理新手入门导读[视频教程]批处理基础视频教程[视频教程]VBS基础视频教程[批处理精品]批处理版照片整理器
[批处理精品]纯批处理备份&还原驱动[批处理精品]CMD命令50条不能说的秘密[在线下载]第三方命令行工具[在线帮助]VBScript / JScript 在线参考
返回列表 发帖

[网络连接] 批处理怎样记录ping丢包的时间?

详细要求:
  我们公司要一个VPN常常掉线,但是我们又查找不了网络原因。
所以想用一台机常Ping

但是Ping 又不能记录当前的时间
我在网上找了一下相关资料,也没有得到我想要的效果
我想这个批处理可以得到以下信息:

2.记录丢包大于5包的系统时间
3.记录延时大于500的系统时间《这里是时间》
4.记录因掉线后ADSL重新获得公网IP后。系统的时间

Ping 的地址:ping  guoxin006.free.ezvpn.cn -t

那位达人帮帮忙啊。
感激不尽啊
QQ:52252284


请给出原代码啊
我不是很懂批处理

[ 本帖最后由 kindao 于 2010-7-6 19:17 编辑 ]

你只要去掉 -t  参数,然后用循环来做,ping -t 一直工作,根本不返回。

每个循环发一个包, ping -n 1 ,然后找出 IP,LOST,TIMS 的值赋给变量处理就可以了

TOP

我不懂批处理
能否给出完整的代码?

TOP

  1. @echo off&setlocal enabledelayedexpansion
  2. set "ip_address=[59.33.105.53]"
  3. rem 设置初始IP;
  4. :loop
  5. set /a packets+=1
  6. for /f "delims=*" %%i in ('ping -n 1 guoxin006.free.ezvpn.cn^|findstr "Pinging Reply Request" ') do (
  7. call :%%i
  8. )
  9. goto :loop
  10. :Pinging
  11. rem 获取对应DNS的IP地址
  12. if not %ip_address%==%2 echo;[IP]  %time% ip_address change to %2>>log.txt
  13. set "ip_address=%2"
  14. goto :eof
  15. :Reply
  16. rem 获取延迟时间;
  17. set "tm=%6"
  18. set tm=!tm:~0,-2!
  19. echo !tm!
  20. if !tm! geq 500 echo;[Delay]  %time% Approximate round trip time=%6>>log.txt
  21. goto :eof
  22. :Request
  23. rem 记录丢包;
  24. set /a loss+=1
  25. set /a _loss+=1
  26. set /a lp= loss*100 / packets
  27. if !_loss! geq 5 (
  28. set /a _loss=0
  29. echo;[Packets] %time% Packets: Sent = !packets!, Received = !packets!, Lost = !loss! [!lp!%% loss]>>log.txt
  30. )
  31. goto :eof
复制代码

修改过的

[ 本帖最后由 caruko 于 2010-7-7 13:34 编辑 ]

TOP

caruko
可以给我讲解一下吗?
我看不懂 
谢谢你啊!!

TOP

  1. @echo off&setlocal enabledelayedexpansion
  2. :x
  3. for /f "tokens=1,3,7,9 delims==: " %%i in ('ping 10.185.56.28 -n 1') do (set k=%%k
  4. if /i "%%i"=="Reply" if !k:~0^,-2! gtr 100 >>[font=SimSun][size=9pt]大于[/size][/font]100ms.log echo Reply from %%j bytes=32 time=%%k TTL=%%l at %date% %time%
  5. if /i "%%i"=="Request" >>out.log echo ping NFS Server IP:10.185.56.28 that Request timed out at %date% %time%.)
  6. goto :x
复制代码

TOP

我试了一下,怎么不能用呢。

TOP

返回列表