Как в .bat файле узнать, пингуется ли сайт?

p_serge

как это сделать? чтобы можно было с помощью IF потом что-то сделать в зависимости от того, пингуется ли интернет-ресурс.

следующий способ не приветствуется: ping site.ru > ping.log , а дальше разбор ping.log на присутствие Request timed out

Ivan8209

А что тебе надо делать?
Не проще ли попытаться установить соединение?
---
...Я работаю антинаучным аферистом...

p_serge

telnet'ом, что ли ? пусть, например, им. Тогда как решается эта задачка ?

gopnik1994


ping site.ru -n 1 | find "TTL=" > nul
if errorlevel 1 (
echo Unreachable
) else (
echo Online!
)

hint:
1) проверка на отсутствие "request time out" не спасает от "DNS-error"
2) проверка на присутствие "Reply from" не спасает от "Reply from <gw>: destination host unreachable"
3) АФАИК, TTL пишется одинаково в русской и английской винде и присутствует только в строках ответа.

Ivan8209

Лучше посмотри, как это делает Nagios, чтобы не переизобретать велосипед.
---
...Я работаю антинаучным аферистом...

gopnik1994

хотя и сам ping возвращает errorlevel=1, но я не в курсе, в каких случаях.
но можно попробовать так:
ping site.ru -n 1 > nul
if errorlevel 1 (
echo Unreachable
) else (
echo Online!
)

p_serge

здорово! спасибо!

p_serge

и так работает

Ivan8209

> -n 1
Очень ненадёжно.
Слишком часты случаи, когда первый пакет пропадает,
а затем всё идёт с хорошим откликом.
---
...Я работаю антинаучным аферистом...

Ivan8209

Если тебе нужна какая-то служба, что более вероятно, то пинги не спасают.
Бывают, например, извращения, когда icmp фильтруется,
что никак не мешает устанавливать соединения tcp.
---
...Я работаю антинаучным аферистом...

gopnik1994

Слишком часты случаи, когда первый пакет пропадает,
а затем всё идёт с хорошим откликом.
-n 2

p_serge

об этом я в курсе. поэтому в заголовке написал именно "пингуется ли сайт", а не "доступен ли сайт"

Ivan8209

Я бы ставил не менее пяти.
Кстати об "exit code".
В операционной системе "ping returns 0 on success (the host is alive
and non-zero if the arguments are incorrect or the host is not responding."
Справедливо ли это на целевой машине, я не знаю.
Подробнее, что подразумевается под "the host is alive", можно узнать по исходникам.
---
...Я работаю...

gopnik1994

Я бы ставил не менее пяти.
Я к тому, что это не меняет кода. Просто параметр.
Конкретное число будет зависеть от задачи.
Кстати об "exit code".
В операционной системе "ping returns 0 on success (the host is alive
т.е. есил из 5-ти один вернется, значит exit-code=0?
Это никсах или ты про винду?

Ivan8209

> т.е. есил из 5-ти один вернется, значит exit-code=0?
Ты никогда до конца не дочитываешь?
---
...Я работаю...

gopnik1994

я дочитал. аж 2 раза.
только твои фразы имеют как минимум 2 смысла.

Ivan8209

K> Подробнее, что подразумевается под "the host is alive", можно узнать по исходникам.
Расскажи, как ещё можно это понимать.
---
...Я работаю...

erotic

об этом я в курсе. поэтому в заголовке написал именно "пингуется ли сайт", а не "доступен ли сайт"
Ага. В таком случае отвечаю: " Веб-сайт, или просто сайт (англ. website, от web — паутина, «веб» и site — «место») — это совокупность веб-страниц, то есть документов HTML/XHTML, доступных в интернете через протоколы HTTP/HTTPS".
Таким образом очевидно, что набор страничек пинговаться не может.

p_serge

это уже филология

Ivan8209

Это не филология, это терминология.
---
...Я работаю...
Оставить комментарий
Имя или ник:
Комментарий: