@echo
off
:: ping DNS保持连接 并且 检测是否掉线 自动重新连接程序
:: By suxiaojack at 2007.11
:init
set DOWN = 0
goto start
:: 检测需要重新连接否
:checkRedial
:: 自行确定rasdial输出 ,是否是 "已连接" 可能是英文等等
rasdial | find " 已连接 "
:: 没有已连接字符输出,则掉线了
if {% ERRORLEVEL %} == { 1 } set DOWN = 1
goto EOF
:redial
echo 重新连接
:: 利用创建的一个连接,保存了密码,去掉拨号提示等等。一旦执行就自动拨号。
c: cdma . lnk
set DOWN = 0
goto EOF
:start
:redo
echo at % DATE % % TIME %
ping 220.192 . 8.58 -n 1 | find " Reply "
if {% ERRORLEVEL %} == { 1 } call :checkRedial
if {%DOWN%} == { 1 } call :redial
:: 延时
ping 0 > nul
ping 0 > nul
ping 0 > nul
ping 0 > nul
ping 0 > nul
ping 0 > nul
goto redo
:EOF
:: ping DNS保持连接 并且 检测是否掉线 自动重新连接程序
:: By suxiaojack at 2007.11
:init
set DOWN = 0
goto start
:: 检测需要重新连接否
:checkRedial
:: 自行确定rasdial输出 ,是否是 "已连接" 可能是英文等等
rasdial | find " 已连接 "
:: 没有已连接字符输出,则掉线了
if {% ERRORLEVEL %} == { 1 } set DOWN = 1
goto EOF
:redial
echo 重新连接
:: 利用创建的一个连接,保存了密码,去掉拨号提示等等。一旦执行就自动拨号。
c: cdma . lnk
set DOWN = 0
goto EOF
:start
:redo
echo at % DATE % % TIME %
ping 220.192 . 8.58 -n 1 | find " Reply "
if {% ERRORLEVEL %} == { 1 } call :checkRedial
if {%DOWN%} == { 1 } call :redial
:: 延时
ping 0 > nul
ping 0 > nul
ping 0 > nul
ping 0 > nul
ping 0 > nul
ping 0 > nul
goto redo
:EOF
主要是用了ping和rasdial两个命令,如果没有必要ping DNS服务器来保持数据链接的话,可以自行去掉其处理.
而rasdial的输出需要自行确定是否是中文的"已连接"或者改变为其他的。在延时时间上也可以自行增减(不必太频繁)。
自动连接使用了链接的快捷方式文件。需要将其属性设置一下,保存密码,去掉所有提示,以便达成自动连接的目的。
修改了一下ping随机地址似乎要好点。
@echo
off
:: ping 随机地址 保持连接 并且 检测是否掉线 自动重新连接程序
:: By suxiaojack at 2007.12
:init
set DOWN = 0
goto start
:: 检测需要重新连接否
:checkRedial
:: 自行确定rasdial输出 ,是否是 "已连接" 可能是英文等等
rasdial | find " 已连接 "
:: 没有已连接字符输出,则掉线了
if {% ERRORLEVEL %} == { 1 } set DOWN = 1
goto EOF
:redial
echo 重新连接
:: 利用创建的一个连接,保存了密码,去掉拨号提示等等。一旦执行就自动拨号。
c: cdma . lnk
set DOWN = 0
goto EOF
:start
:redo
set / a IP1 = %RANDOM% / 255
set / a IP2 = %RANDOM% / 255
set / a IP3 = %RANDOM% / 255
set / a IP4 = %RANDOM% / 255
set IP = %IP1% . %IP2% . %IP3% . %IP4%
echo at % DATE % % TIME % ping %IP%
ping %IP% -n 1 | find " Reply "
if {% ERRORLEVEL %} == { 1 } call :checkRedial
if {%DOWN%} == { 1 } call :redial
:: 延时
ping 0 > nul
ping 0 > nul
ping 0 > nul
ping 0 > nul
ping 0 > nul
ping 0 > nul
ping 0 > nul
ping 0 > nul
goto redo
:EOF
:: ping 随机地址 保持连接 并且 检测是否掉线 自动重新连接程序
:: By suxiaojack at 2007.12
:init
set DOWN = 0
goto start
:: 检测需要重新连接否
:checkRedial
:: 自行确定rasdial输出 ,是否是 "已连接" 可能是英文等等
rasdial | find " 已连接 "
:: 没有已连接字符输出,则掉线了
if {% ERRORLEVEL %} == { 1 } set DOWN = 1
goto EOF
:redial
echo 重新连接
:: 利用创建的一个连接,保存了密码,去掉拨号提示等等。一旦执行就自动拨号。
c: cdma . lnk
set DOWN = 0
goto EOF
:start
:redo
set / a IP1 = %RANDOM% / 255
set / a IP2 = %RANDOM% / 255
set / a IP3 = %RANDOM% / 255
set / a IP4 = %RANDOM% / 255
set IP = %IP1% . %IP2% . %IP3% . %IP4%
echo at % DATE % % TIME % ping %IP%
ping %IP% -n 1 | find " Reply "
if {% ERRORLEVEL %} == { 1 } call :checkRedial
if {%DOWN%} == { 1 } call :redial
:: 延时
ping 0 > nul
ping 0 > nul
ping 0 > nul
ping 0 > nul
ping 0 > nul
ping 0 > nul
ping 0 > nul
ping 0 > nul
goto redo
:EOF