2013-03-18 8 views
2

Я сочинительство пакетный файл, проверяющий веб-сайт, например:CMD Findstr с пингом

Pinging youtube.com [173.194.70.91] with 32 bytes of data: 
Reply from 173.194.70.91: bytes=32 time=187ms TTL=44 

Ping statistics for 173.194.70.91: 
    Packets: Sent = 1, Received = 1, Lost = 0 (0% loss), 
Approximate round trip times in milli-seconds: 
    Minimum = 187ms, Maximum = 187ms, Average = 187ms 

и моя программа должна скопировать только IP-адрес и сохранить его в текстовый файл.

Так пингует в текстовый файл

ping youtube.com >> file.txt 

Теперь я использую команду findstr, чтобы найти IP-адрес. И это нормально, если я использую это:

ping youtube.com -n 1 >nul >>C:\Users\Adrian\Desktop\IP.txt 
findstr /i "Reply from 173.194.70.93: bytes=32 time=188ms TTL=43 C:\IP.txt 

IF %ERRORLEVEL% EQU 0 (
    echo You are winning 
) else (
    echo You are losing 
) 
pause 

Теперь он говорит, я выигрываю и то хорошая вещь, но моя программа должна найти IP-адрес, не зная его. Таким образом, команда findstr должны знать, чтобы получить IP-адрес между здесь ...

"Reply from 173.194.70.91: bytes=32 time=187ms TTL=44" 

поэтому он должен findstr на IP из этой строки. Но я был Гуглинг и ничего не нашел.

+0

Вы хотите, чтобы IP-адрес в любом случае, или только тогда, когда вы получите ответ от хозяина? –

ответ

0

Попробуйте это:

@echo off &setlocal 
for /f "tokens=2delims=[]" %%i in ('ping -n 1 youtube.com^|find "["') do set "ip=%%i" 
echo.%ip%>>file.txt 
endlocal 
+1

Спасибо, но не могли бы вы объяснить для/f и токенов мне :), Да, я подошел к нему и немного понял его. – Adrianvdh

+0

Команда find выхватывает выходную строку из 'ping' с' ['символом внутри. Токены находятся на этой линии между разделителями. Токен 1 - это «Pinging youtube.com» и токен 2 - IP-адрес (между '[' и ']'). – Endoro

+0

Спасибо вам большое :) – Adrianvdh

0

Если PowerShell является приемлемым, то вы можете попробовать:

[System.Net.Dns]::GetHostAddresses("youtube.com") | foreach {echo $_.IPAddressToString } 
+0

Еще один вопрос ... Не могли бы вы рассказать мне, что у вас есть firefox, google chrome, internet explorer, хранящий файл истории броска? – Adrianvdh

+0

Это определенно вопрос, который стоит создать новый поток, но через какой-то Googling есть инструменты, такие как History Export, которые могут экспортировать историю просмотров из веб-браузеров. –

+0

Нет, потому что это часть моей программы, чтобы удалить историю просмотров (cmd) – Adrianvdh