Войти

Показать полную графическую версию : [решено] Помогите с написанием скрипта. Ping нескольких серверов.


jellypop
18-03-2012, 16:58
привет всем.

помогите, пожалуйста, с написанием скрипта. сам в этом полный ноль.
смысл скрипта:
есть несколько серверов (IP + название сервера, не домен, а просто рандомное название, которое будет задаваться в самом коде скрипта). так вот. нужно, чтобы этот скрипт пинговал все серверы и выдавал название того, у которого значение средний пинг имеет лучшие показатели (мс.).

например есть три сервера:
127.0.0.1 - Computer1
127.0.0.2 - Computer2
127.0.0.3 - Computer3

запускаешь скрипт, он пингует все серверы и выдает, например, Computer2 (потому что средний пинг у него был лучше всех)

если что-то не понятно, постараюсь дополнить. спасибо огромное заранее.

Foreigner
18-03-2012, 19:00
jellypop,

@echo off
setlocal

set "ip_94.100.191.202=mail.ru"
set "ip_87.250.250.11=yandex.ru"
set "ip_173.194.71.94=google.ru"

for /f "tokens=2,3 delims=_=" %%i in (' set ip_ ') do (

for /f "tokens=4 delims==" %%k in (' ping %%i ^| findstr /v ":" ^| findstr "=" ') do call:1 %%j %%k

)

for /f "tokens=2 delims==" %%i in (' set ping_ ^| sort /r ') do set "site=%%i"

echo %site%
goto:eof

:1
set "num="
if not "%2"=="" set "num=000%2"
if defined num set "ping_%num:~-3%=%1"

jellypop
18-03-2012, 19:38
спасибо огромное, работает.
а как-нибудь переделать так, чтобы выводилось сразу 5 компьютеров по порядку (по результату того-же самого среднего пинга) и отображался средний пинг для каждого.
например
1. yandex.ru - 10 ms.
2. mail.ru - 30 ms.
3. google.ru - 50 ms.

и т.п.
спасибо заранее еще раз!

Foreigner
18-03-2012, 20:08
jellypop, можно, но компьютер, где превышен интервал ожидания отображаться не будет. Только доступные:

....
for /f "tokens=2,3 delims=_=" %%i in (' set ping_ ^| sort /r ') do echo %%j - %%i ms

goto:eof

:1
...

Будет с лидирующем нулем. Убрать?

google.ru - 039 ms
yandex.ru - 005 ms
mail.ru - 003 ms

jellypop
18-03-2012, 21:02
во. спасибо! пускай будет ноль, не мешает. qiwi-кошелек, яд деньги в ЛС! за работу полагается копейка)




© OSzone.net 2001-2012