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

[网络连接] 批处理怎样自动拨号?

现在 有若干个账号密码以及各个账号所对应的IP。
要求,运行批处逐个检查IP是否在线,如果不在线就调用对应账号密码来拨号,连接的名称和IP一样,(事先已添加好)。连接上后自动检测所连接账号对应的IP是否上线,若检测到机器上线则自动断开宽带连接,然后重新检测,如果 可能 的话,在一次检测完没有一个IP不在线的情况 ,自动退出程序。(我里我想能不能用导出 到txt,在find来实现)。
ps:  可能出现ip不在线,但账号有人在用的情况 ,这种情况 也跳过,检测下一个
    连接宽带的命令  Rasdial 连接名 用户名 密码
    断开连接的命令  Rasdial 连接名 /disconnect
然后账号可能 以后还会增加,希望 能在外面直接加在一个文本里,以一定格式储存就行了。不要改P的代码。
呵呵 ,先谢谢 各位 。表达能力 不行,什么看不明白的,可以 回贴。^ ^

[ 本帖最后由 codeblue 于 2007-11-9 18:18 编辑 ]

检查某个IP是否在线
检测所连接账号对应的IP是否上线
这两项 能用批处理或命令行做到吗? (如果能,请把步骤写出来)
技术问题请到论坛发帖求助!

TOP

ip都知道 ,我目前 是用ping ,ping ip -n 1 -w 300 这样可能 保证速度 。但是资源 可能会浪费 。相对 其他 批处理 来说。就是这样了。连上之后 还是不停的ping ,我现在是用goto,,呵呵 。不知道 要怎么 处理 。

TOP

a.txt内容:
ip 用户名 密码
ip 用户名 密码
一行一个,用空格分开.(可以随时添加)
.
不知道你是不是这个意识
ping第一个ip 通就继续ping后面的,不通就连接这个ip,然后就一直ping这个ip
直到ping通以后就断开,再继续ping后面的ip,遇到不通的就又连接这个不通的ip
然后又一直ping这个你连接上的ip,直到通再继续.
若是从头ping到尾,都是通的,就退出.


::
  1. @echo off&setlocal EnableDelayedExpansion
  2. :kai
  3. set num=0&str=0
  4. for /f "tokens=1-3 delims= " %%a in (a.txt) do (
  5. ping/n 1 %%a>nul 2>nul
  6. if !ERRORLEVEL! neq 0 (
  7. for /f "delims=:" %%i in ('Rasdial %%a %%b %%c') do (
  8. if "%%i"=="若需此错误的详细说明" set str=1
  9. )
  10. if !str! equ 0 call :lis %%a
  11. ))
  12. if !num! equ 0 (exit) else goto kai
  13. :lis
  14. ping/n 1 %1>nul 2>nul
  15. if !ERRORLEVEL! neq 0 goto lis
  16. Rasdial %1 /disconnect
  17. set num=1
  18. goto :eof
复制代码

[ 本帖最后由 随风 于 2007-11-10 15:52 编辑 ]
技术问题请到论坛发帖求助!

TOP

正是这个意思 。代码 一会试一下,谢谢 。

TOP

测试 了一下,总体 是这样,但是有个细节 ,我在一楼也提到 了。就是可能 ping 不能IP但账号 也不能用的情况 ,可能 其他 人借了他的。也可能 是密码 出错,会出现 如下错误

正在验证用户名及密码...

远程访问错误 691 由于域上的用户名和/或密码无效而拒绝访问。

若需此错误的详细说明:
        请在帮助中键入“hh netcfg.chm”
        单击“疑难解答”,选择“错误信息”,然后键入 “ 691”

这样,如果 第一个不行的话就卡住 了,我不知道 把find 插在哪 。。。

TOP

还有就是在lis   那里,连接 成功 后是一直ping ,在ping 前一行可不可以 加个延时,纯批处理 能不能解决 。我想这样会省点资源 。呃。

[ 本帖最后由 codeblue 于 2007-11-10 09:35 编辑 ]

TOP

::
  1. @echo off&setlocal EnableDelayedExpansion
  2. title  检测ip
  3. :kai
  4. set num=0&set str=0
  5. for /f "tokens=1-3 delims= " %%a in (a.txt) do (
  6. ping/n 1 %%a>nul 2>nul
  7. if !ERRORLEVEL! neq 0 (
  8. for /f "delims=:" %%i in ('Rasdial %%a %%b %%c') do (
  9. if "%%i"=="若需此错误的详细说明" set str=1&echo %%a 连接出现错误
  10. )
  11. if !str! equ 0 call :lis %%a
  12. ) else echo %%a 在线
  13. )
  14. if !num! equ 0 (exit) else goto kai
  15. :lis
  16. ping/n 1 %1>nul 2>nul
  17. if !ERRORLEVEL! neq 0 goto lis
  18. Rasdial %1 /disconnect&&echo 以断开 %1 连接,正在检测其它的ip
  19. set num=1
  20. goto :eof
复制代码
技术问题请到论坛发帖求助!

TOP

返回列表