Компьютерный форум OSzone.net  

Компьютерный форум OSzone.net (http://forum.oszone.net/index.php)
-   Скриптовые языки администрирования Windows (http://forum.oszone.net/forumdisplay.php?f=102)
-   -   получить списком все ip сайта (http://forum.oszone.net/showthread.php?t=273752)

RedX 10-12-2013 18:21 2270171

получить списком все ip сайта
 
Доброго времени всем!

Помогите решить проблему.
Есть список серверов, каждый сервер имеет несколько ip.
Нужно из скрипта cmd получит список соответствия url - ip. только тех серверов у которых наименьшее время отклика.
Я понимаю что нужно использовать цикл for , команду lookup и последующий пинг каждого полученного ip.
загвоздка в реализации.
1) как из всей каши, которую выдаёт lookup выделить чистые ip адреса.
2) как из кучи инфы, которую выдаёт ping выделить среднее время .

не прошу написать за меня, просто подскажите как можно обработать результаты команд.

RedX 10-12-2013 18:28 2270177

смысл всего этого - добавить соответствие ip и url в файл hosts
могу все это наваять на php, но нужно именно cmd

Ruslan_F 19-12-2013 12:45 2274854

nslookup ya.ru 8.8.8.8 | find "Addresses" > file.txt
ping 213.180.193.3 | find /i "Среднее" > file.txt


Можно результат бросить в текстовый файл , его анализировать Через FOR /F %i in (file.txt)
Смотри FOR /?
set /?

merdzd 19-12-2013 15:15 2274945

у меня
nslookup ya.ru 8.8.8.8 | find "Addresses" > file.txt
1 ip сохранил.

Foreigner 19-12-2013 17:31 2275026

Цитата:

1) как из всей каши, которую выдаёт lookup выделить чистые ip адреса.
Код:

2>nul nslookup ya.ru | 1>ip.txt sed -nr "5,$ s/^.*\s(.*)$/\1/p"

kiripanda 19-12-2013 22:06 2275228

Код:

@echo off &setlocal enableextensions

set Host=google.com

set "IP="
set /a O = 9999
for /f "tokens=1,* delims=: " %%a in ('2^>nul nslookup %Host% ^|find ", "') do call :ping "%%b"
>>Fast.txt echo %IP%        %Host%
goto :eof

:ping
for /f "tokens=1,* delims=, " %%i in (%1) do (
        for /f "skip=1 tokens=7 delims== " %%O in ('ping -n 1 %%i ^|find " = "') do (
                echo %%i        %%O
                if %%O LSS %O% (set /a O = %%O &set "IP=%%i")
        )
if not "%%j"=="" call :ping "%%j"
)
goto :eof



Время: 15:15.

Время: 15:15.
© OSzone.net 2001-