Yet another Ping, но для протокола HTTP

Иногда очень полезно узнать время и сам факт отклика какого-нибудь веб-сервиса, коих сейчас очень много вокруг нас развелось, и от которых всё больше и больше зависит наша жизнь (по мотивам того, как я сегодня ломился в свой далекий заморский банкинг).

Как раз для такого типичного случая есть небольшая, но очень гордая маленькая утилитка httping , которая позволяет сделать это максимально удобно. Её консольные варианты есть как под Windows, так и под Linux/FreeBSD, а подробности про них всех — у меня под катом.

пинг ping реез веб http web

Установка

Устанавливаем её из портов FreeBSD вот так:

$ cd /usr/ports/net/httping
$ make install


Как альтернатива — в Gentoo Linux через систему portage system ставим так:

sudo emerge -av net-analyzer/httping

Все остальные линуксоиды невозбранно берут её вот здесь, а виндоиды — тута.

Использование!

Теперь мы её наконец скачали и установили, и подогреваемые острым желанием сразу начинаем пинговать сеть интернет, но пока не всю сразу, а какой-то отдельный сайтик, например мой (к примеру, с целью завалить его к чертовой м@тери под тяжестью коллективных пингов):

$ httping blogerator<span class="sh_symbol">.</span>ru
PING blogerator<span class="sh_symbol">.</span>ru<span class="sh_symbol">:</span><span class="sh_number">80</span> <span class="sh_symbol">(</span>blogerator<span class="sh_symbol">.</span>ru<span class="sh_symbol">):</span>
time<span class="sh_symbol">=</span><span class="sh_number">1173</span><span class="sh_symbol">.</span>237ms status<span class="sh_symbol">=</span><span class="sh_number">200</span> bytes<span class="sh_symbol">=</span><span class="sh_number">52428</span> kbit<span class="sh_symbol">/</span>s<span class="sh_symbol">=~</span><span class="sh_number">357.493</span> 
time<span class="sh_symbol">=</span><span class="sh_number">1132</span><span class="sh_symbol">.</span>961ms status<span class="sh_symbol">=</span><span class="sh_number">200</span> bytes<span class="sh_symbol">=</span><span class="sh_number">52446</span> kbit<span class="sh_symbol">/</span>s<span class="sh_symbol">=~</span><span class="sh_number">370.329</span> 
time<span class="sh_symbol">=</span><span class="sh_number">1001</span><span class="sh_symbol">.</span>801ms status<span class="sh_symbol">=</span><span class="sh_number">200</span> bytes<span class="sh_symbol">=</span><span class="sh_number">52434</span> kbit<span class="sh_symbol">/</span>s<span class="sh_symbol">=~</span><span class="sh_number">418.718</span> 
time<span class="sh_symbol">=</span><span class="sh_number">817</span><span class="sh_symbol">.</span>659ms status<span class="sh_symbol">=</span><span class="sh_number">200</span> bytes<span class="sh_symbol">=</span><span class="sh_number">52430</span> kbit<span class="sh_symbol">/</span>s<span class="sh_symbol">=~</span><span class="sh_number">512.977</span> 
<span class="sh_symbol">---</span> 
Ping statistics <span class="sh_keyword">for</span> <span class="sh_number">67.225.136.44</span><span class="sh_symbol">:</span><span class="sh_number">80</span>
<span class="sh_number">4</span> probes sent<span class="sh_symbol">.</span> 
<span class="sh_number">4</span> successful<span class="sh_symbol">,</span> <span class="sh_number">0</span> failed<span class="sh_symbol">.</span>
Approximate trip times in milli<span class="sh_symbol">-</span>seconds<span class="sh_symbol">:</span> 
Minimum <span class="sh_symbol">=</span> 817ms<span class="sh_symbol">,</span> Maximum <span class="sh_symbol">=</span> 1173ms<span class="sh_symbol">,</span> Average <span class="sh_symbol">=</span> 1030ms

Как видно из выдачи, он возвращает не только статусы веб-сервера, но и среднюю расчетную скорость доступа к нему.

Конечно, этой штукой можно пинговать и другие сервисы, не только http-based, например, SSH или FTP, но в этом случае таймаутов вы не увидите:

$ httping remote<span class="sh_symbol">-</span>server <span class="sh_symbol">-</span>p <span class="sh_number">22</span> <span class="sh_symbol">-</span>t <span class="sh_number">1</span>
error receiving reply from host
error receiving reply from host
error receiving reply from host
error receiving reply from host
error receiving reply from host
<span class="sh_symbol">^</span>CGot signal <span class="sh_number">2</span>
<span class="sh_symbol">---</span> remote<span class="sh_symbol">-</span>server ping statistics <span class="sh_symbol">---</span>
<span class="sh_number">5</span> connects<span class="sh_symbol">,</span> <span class="sh_number">0</span> ok<span class="sh_symbol">,</span> <span class="sh_number">100.00</span><span class="sh_symbol">%</span> failed<span class="sh_symbol">,</span> time 5969ms<span class="sh_symbol"></</span>code<span class="sh_symbol">></span>

Здесь я прервал цикл пингования принудительно.

Однако по характерному сообщению «error receiving reply from host» можно сразу понять, что искомый порт сервиса всё-таки открыт. Если же этот порт будет закрыт, то этого сообщения не будет, да и вообще ничего в ответ не будет — только радикально черный экран и тоскливая тишина одиночества консоли будет смотреть в ваши усталые глаза…

В заключение буквально несколько коротких замечаний насчет httping :

  • ключи-опции к этой утилите можно глянуть на этой страничке;
  • в Маркете есть её мобильная версия и для Android;
  • доступны для свободного скачивания все исходные коды этой утилиты;
  • эта мини-утилитка развивается и довольно регулярно обновляется (что приятно);
  • также можно посмотреть её аналог от этого же автора — tcping.

Веб-альтернативы

Впрочем, конечно, можно не заморачиваться, а воспользоваться достойными веб-аналогами, коих много (например, тем же моим любимым host-tracker.com), которые к тому же пропингуют сайт ещё с разных точек земного шара, более тонко проверяя его доступность и скорость доступа к нему (вот пример сегодняшнего сохраненного теста для моего блога).

Запись опубликована в рубрике *Lan&Wan, *Unix,*Linux. Добавьте в закладки постоянную ссылку.

Добавить комментарий

Ваш e-mail не будет опубликован. Обязательные поля помечены *

Я не спамер This plugin created by Alexei91