Board logo

标题: [网络连接] 批处理怎样实现VPN线路守护、监测、自动换线? [打印本页]

作者: bobo    时间: 2011-11-19 14:21     标题: 批处理怎样实现VPN线路守护、监测、自动换线?

  1. rem VPNIP.TXT里是VPN线路的IP列表,每个IP一行
  2. rasdial VPN name pass  /phone:1%%  rem VPNIP.TXT列表里的第一个IP地址
  3. rem vpn拨号成功后,每隔一分钟 ping google.com
  4. :ping
  5. timeout 60 >nul
  6. ping -n 10 -l 1 google.com >lost.txt
  7. timeout 60>nul
  8. ping -n 10 -l 1 google.com >>lost.txt
  9. rem 下面的不会写 :连续2次ping的掉包率超过20%或者平均延时超过600
  10. rasdial /DISCONNECT rem 挂断VPN
复制代码
然后 rasdial VPN name pass  /phone:2%%  rem VPNIP.TXT列表里的下一个IP地址 ,把TXT里的IP设成 2%% 不会啊
IF %ERRORLEVEL% EQU 0 goto ping  rem 拨号成功 继续测试 直到线路不好 再次挂断 播VPNIP.TXT 里的第三行地址
IF ERRORLEVEL EQU 1 REM :拨号失败 继续拨号下一行的IP,直到成功后 goto ping 继续监测


初学批处理,请大家帮助,谢谢
作者: bobo    时间: 2011-11-19 14:49

求助:怎么提取ping命令输出的平均延迟和丢包率
还有就是怎么把VPNIP.TXT里的一行一行的ip地址设为变量提供给批处理?
作者: awk    时间: 2011-11-19 18:19

回复 2# bobo
  1. @echo off
  2. setlocal enabledelayedexpansion
  3. for /f "delims=" %%a in (VPNIP.TXT) do (
  4.     set ip=%%a
  5.     echo !ip!
  6. )
  7. pause
复制代码

作者: bobo    时间: 2011-11-19 19:16

谢谢awk老师的指导,那么把ping命令结果的平均延迟和丢包率传给 IF命令比较要怎么做?
如果ping的结果延迟过高(超过600)或者丢包率过高(超过20%)
那么就要播下一条IP,
还有就是,VPN密码里面有特殊字符,用rasdial命令拨号容易密码错误,用^转义符也不起作用呢?
作者: wh1234567    时间: 2012-6-7 18:44

解决了吗?
作者: katolecyan    时间: 2014-6-11 02:20

跟楼主学习看有什么解决方案
作者: PowerShell    时间: 2014-6-16 20:11

如果ping的结果延迟过高(超过600)或者丢包率过高(超过20%)------
快4年了了!!!,
此问题终于被我关注,被我写脚本攻克  :   )  

http://www.bathome.net/thread-30586-1-1.html




欢迎光临 批处理之家 (http://bathome.net./) Powered by Discuz! 7.2