PDA

Показать полную графическую версию : получить списком все ip сайта


RedX
10-12-2013, 18:21
Доброго времени всем!

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

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

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

Ruslan_F
19-12-2013, 12:45
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
у меня
nslookup ya.ru 8.8.8.8 | find "Addresses" > file.txt
1 ip сохранил.

Foreigner
19-12-2013, 17:31
1) как из всей каши, которую выдаёт lookup выделить чистые ip адреса.

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

kiripanda
19-12-2013, 22:06
@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




© OSzone.net 2001-2012