中国DOS联盟论坛

中国DOS联盟

-- 联合DOS 推动DOS 发展DOS --

联盟域名:www.cn-dos.net  论坛域名:www.cn-dos.net/forum
DOS,代表着自由开放与发展,我们努力起来,学习FreeDOS和Linux的自由开放与GNU精神,共同创造和发展美好的自由与GNU GPL世界吧!

游客:  注册 | 登录 | 命令行 | 会员 | 搜索 | 上传 | 帮助 »
作者:
标题: 多IP判断问题 上一主题 | 下一主题
qq43142691
中级用户





积分 327
发帖 152
注册 2007-5-4
状态 离线
『楼 主』:  多IP判断问题

有多个域名或者IP比如
qq.com baidu.com google.com crsyk.com
我想逐一用ping 命令ping 域名并且截取返回的响应时间XXX毫秒
如果不通则提示 超时
利用返回的响应时间对比。提示出最快的一个域名

我搞了好久。看了好多资料了。
最后一步不会了。不知道为什么老是判断失误。。请各位能人之士帮修改精简下
@echo off
color 0a
title 服务器速度查询
setlocal enabledelayedexpansion
set/a st=1000
set 服务器=qq.com baidu.com 220.181.38.84 crsky.com
:start
echo ===============================
for /l %%q in (1,1,4) do (set nb=%%q &call :do)
echo 速度最快的是%name% 时间为:%st% 毫秒
pause
exit
:do
for /f "tokens=%nb%" %%a in ('echo %服务器%') do (
    echo 正在检测:        %%a
    call :pip %%a
    echo %myms%
    if %st% gtr %myms% set/a st=%myms% & set name=%%a
    echo ===============================)
goto :eof
:pip
        set/a nb+=1
    set/a num=0
    for /f "tokens=4 delims=m=" %%i in ('ping -n 1 %1^|find "Maximum"') do (
         set/a num+=1
         set/a myms=%%i
         echo %%a响应速度为:%%i 毫秒)
    if %num% EQU 0 echo.超时 & set myms=9999
    goto :eof
[ Last edited by qq43142691 on 2008-2-3 at 06:48 AM ]

2008-2-3 06:46
查看资料  发送邮件  发短消息 网志   编辑帖子  回复  引用回复
qq43142691
中级用户





积分 327
发帖 152
注册 2007-5-4
状态 离线
『第 2 楼』:  

自己独立完成了。。测试了OK的。。分享给大家。。
@echo off
color 0a
title 多服务器响应判断by ^|彬^|QQ43142691 2008-02-03
setlocal enabledelayedexpansion
set st=1000
set nb=0
set fn=6
set fst=sina.com
set 服务器=%fst% 163.com yahoo.com.cn sohu.com qq163.com 772.cn
set/a nb+=1
echo 正在检测第 %nb% 个目标        %fst%
call :CheckServer %fst%
if %st% gtr %myms% set/a st=%myms% & set name=%fst% & set nbip=%nb%
for /l %%q in (1,1,%fn%) do (set nb=%%q &call :do)
echo.__________________________________________________________________
echo 响应速度最快的地址是第 %nbip% 个域名 %name% ,响应速度为: %st% 毫秒
echo.__________________________________________________________________
pause>nul
exit
:do
echo _____________________________________ %nb%
echo.
set/a nb+=1
for /f "tokens=%nb%" %%i in ('echo %服务器%') do (
    echo 正在检测第 %nb% 个目标        %%i
    call :CheckServer %%i
    if !st! gtr !myms! set/a st=!myms! & set name=%%i & set nbip=%nb%)
goto :eof
:CheckServer
    set/a num=0
    for /f "tokens=4 delims=m=" %%a in ('ping -n 1 "%1"^|find /i "Maximum"') do (
         set/a num+=1
         set/a myms=%%a
         if %nb% equ 1 (echo %fst% 的响应速为:%%a 毫秒)else (echo %%i 的响应速为:%%a 毫秒)
         )
    if %num% EQU 0 echo. & echo 目标服务器超时
    goto :eof
[ Last edited by qq43142691 on 2008-2-4 at 12:31 AM ]

2008-2-3 07:21
查看资料  发送邮件  发短消息 网志   编辑帖子  回复  引用回复
plp626
银牌会员

钻石会员


积分 2278
发帖 1020
注册 2007-11-19
状态 离线
『第 3 楼』:  

想法不错.
可以再精简,还有
if %st% gtr %myms% set/a st=%myms% & set name=%fst% & set nbip=%nb%

if %nb% equ 1 (echo %fst% ...
你再琢磨琢磨...

2008-2-4 04:00
查看资料  发短消息 网志   编辑帖子  回复  引用回复
plp626
银牌会员

钻石会员


积分 2278
发帖 1020
注册 2007-11-19
状态 离线
『第 4 楼』:  

我闪了,明年见.

2008-2-4 04:01
查看资料  发短消息 网志   编辑帖子  回复  引用回复
qq43142691
中级用户





积分 327
发帖 152
注册 2007-5-4
状态 离线
『第 5 楼』:  

我是从别人那个测试腾讯服务器速度 的那个批处理修改得来的。。
呵呵。。。给自己用的。。

2008-2-4 06:59
查看资料  发送邮件  发短消息 网志   编辑帖子  回复  引用回复

请注意:您目前尚未注册或登录,请您注册登录以使用论坛的各项功能,例如发表和回复帖子等。


可打印版本 | 推荐给朋友 | 订阅主题 | 收藏主题



论坛跳转: