php проверка сайта на доступность

Проверка ссылок средствами PHP

php проверка сайта на доступность. Смотреть фото php проверка сайта на доступность. Смотреть картинку php проверка сайта на доступность. Картинка про php проверка сайта на доступность. Фото php проверка сайта на доступность

Проверка внешних ссылок на доступность средствами PHP – это самый простой способ уберечь страницы сайта от битых исходящих ссылок. Один из распространенных источников появления не рабочих URL’ов является форма добавления комментариев к записям. Именно в комментариях, чаще всего встречаются ссылки ведущие в никуда. А такие ссылки, как известно, подрывают доверие к сайту со стороны поисковых систем.

Проверить доступность сайта с помощью PHP очень легко. Для этого в PHP 5 есть уже готовая функция, которая замечательно справляется с этой задачей.
get_headers() – возвращает массив заголовков, которые сервер отправляет при запросе.

Вот как это выглядит на конкретном примере:

Проверка URL: http://google.ru

Результат работы данного PHP скрипта выведет список всех заголовков ответа сервера по которым можно судить о доступности сайта.

Не буду описывать каждый заголовок, а остановлюсь на одном:
HTTP/1.1 200 OK(для протокола 1.1) или HTTP/1.0 200 OK(для протокола 1.0) если в массиве присутствует один из этих параметров, то можно с уверенностью сказать, что ссылка рабочая и ведет на конкретную страницу веб ресурса.

Ну а поскольку, мы живем в Российской Федерации, и домены национальной зоны встречаются всё чаще и чаще, то PHP скрипт проверки ссылок на сайте, необходимо усовершенствовать. Для этого нам потребуется Punycode – конвертация.

На сайте www.phpclasses.org скачиваем файл «idna_convert.class.php» и подключаем к нашему PHP скрипту по проверке ссылок на доступность.

Теперь после проверки на наличие символов кириллицы в проверяемом URL выполняем Punycode-преобразование.

Готовый PHP скрипт для проверки URL:

Проверить данный PHP скрипт в действии можно в нижеприведенной форме.

Источник

Ручной мониторинг доступности сайта (обзор простых инструментов)

php проверка сайта на доступность. Смотреть фото php проверка сайта на доступность. Смотреть картинку php проверка сайта на доступность. Картинка про php проверка сайта на доступность. Фото php проверка сайта на доступность

После покупки виртуального и/или выделенного сервера важно вовремя получать информацию о недоступности сервиса, то есть проводить мониторинг основных подсистем веб-сайта.

Надежный веб-сайт должен быть легкодоступен для пользователей 7 дней в неделю, поэтому его надо постоянно проверять как на предмет доступности, так и на предмет работоспособности:

Работа сайта в выходные/сезон отпусков

Есть задача: веб-сайт/сервер/сервис должен работать непрерывно несколько дней без человеческого вмешательства. Что может пойти не так?

Обычные сбои время от времени случаются сами по себе. Только вот ночной сбой со вторника на среду решается перезаливом с бэкапа в среду утром. А на выходных нередки сбои «с пятницы на понедельник». Сколько в таком случае может лежать сайт во время праздников, зависит от длительности отпуска ответственных сотрудников.

В целом, сайту бывает нехорошо, но в будние дни проблема решается быстро. Сколько времени заняло бы решение на майских, если бы не мониторинг? Вместо пары часов могло бы быть пару дней, и это не редкость.

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

Кроме обычных проблем, сайты во время длительного отсутствия бдительных стражей любят также подхватить и другие недуги. Например, может закончиться срок действия домена или сертификата. Или надумает растолстеть база данных. Или он может угодить в списки DNSBL или Роскомнадзора.

Черные списки DNSBL

Важной функцией является проверка доменов в черных списках DNSBL (DNS blacklist или DNS blocklist) — списки хостов, хранимые с использованием системы архитектуры DNS. Обычно используются для борьбы со спамом.

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

Чем это грозит именно вам? Письма от вас перестанут приходить клиентам, сайт станет хуже отображаться в поисковиках и так далее по нарастающей. Поэтому функция контроля и оповещения о попадании в наиболее популярные черные списки является весьма востребованной.

Каждый администратор может настроить свой веб-сервер таким образом, чтобы, например, не получать письма от серверов, перечисленных в определенном списке. Это помогает бороться со спамом, распространением вредоносного ПО, DDoS-атаками и другими проблемами.

Онлайновые черные списки DNSBL, например, antispamsniper.com или syslab.ru, позволяют фильтровать спам, используя DNS для доступа к базам спамерских IP адресов.

Для проверки наличия заданного IP адреса в черных списках введите IP адрес (ваш текущий IP адрес указывается по умолчанию) и нажмите кнопку Проверить.

Защита от DDoS-атак

Если от доступности веб-сайта зависит прибыль, то следует подготовить его к возрастающим нагрузкам (например, во время сезонных распродаж или Черной пятницы) и возможным атакам конкурентов и/или злоумышленников, которые рассчитывают на увеличение времени отклика веб-сайта на входящие запросы или на частичную/полную недоступность.

Планирование технических работ

Программное обеспечение сервера, на базе которого построен веб-сайт или иной ресурс, должно периодически обновляться.

Планирование технических работ позволяет достигнуть двух целей: не присылать оповещения об ошибках и не записывать ошибки во время определенного интервала времени в статистику. При этом проверки во время технических работ все так же идут и исправно пишутся в лог, а следовательно могут быть полезными для администраторов: лог позволяет определить, сколько именно длилось обновление или перезагрузка, какие ошибки при этом выдавались, какие проблемы при этом наблюдались и так далее.

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

Мониторинг срока действия домена и SSL-сертификата

Проблемы с продлением доменов и сертификатов возникают даже у больших компаний. Поэтому оповещение (по СМС или электронной почте), что данный домен необходимо продлить, является крайне полезным. Например, ping-admin.ru предоставляет платные услуги оповещения о результатах мониторинга.

Проверка срока действия домена

Проверить домен бесплатно можно с помощью сервиса nic.ru.

Проверить время действия домена бесплатно можно с помощью сервиса Whois Service.

Проверка срока действия SSL-сертификата

Выполните следующую команду из командной строки в Linux, чтобы узнать срок действия SSL сертификата, с помощью openssl:

Помимо срока действия, SSL сертификат содержит много интересной информации. Каждый SSL сертификат содержит информацию о том, кем он был выдан, кому он выдан, его срок действия и прочее.

Все эти данные могут быть извлечены из SSL сертификата сайта с помощью программы openssl из командной строки в Linux.

Проверить кто выдал SSL сертификат:

Проверить кому выдан SSL сертификат:

Показать всю перечисленную выше информацию об SSL сертификате одной командой:

Мониторинг доступности сайта

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

Вы легко можете проверить доступность сайта из командной строки в Linux и получить от сервера код со статусом HTTP, с помощью таких команд как TELNET или CURL.

Доступность сайта с помощью CURL

Выполните следующую команду для проверки доступности сайта и получения сообщения со статусом от сервера:

Статус код ‘200 OK’ означает что запрос был успешно выполнен и сайт доступен.

Вот еще один пример, который показывает как curl отображает разные ответы сервера:

Также с помощью curl можно проверить доступность отдельной страницы на сайте, например:

Доступность сайта с помощью TELNET

Вы также можете проверить доступность сайта и получить сообщения со статусом от сервера с помощью команды telnet:

Вывод, означающий, что сайт доступен, будет выглядеть следующим образом:

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

Полезные статьи со обзорами сервисов мониторинга:

Источник

Проверка доступности сайта каждые N секунд

Проверять доступность сайта считаю занятием ничуть не менее важным, чем своевременное резервное копирование. Есть немало сервисов, позволяющих мониторить доступность сайта с интервалом вплоть до 1 минуты. Но что делать, когда хочется проверять сайт чаще? К примеру, раз в 10 секунд.

Кстати, для обычного мониторинга доступности (раз в минуту) я уже много лет использую сервис host-tracker, упоминал его в этой статье. Также он мне бывает полезен, когда лень вспоминать, как настраивать задание в cron на периодический запуск php-скрипта.

Мониторинг доступности на стероидах

Проверять стабильность хостинга, которому вы не доверяете, предлагаю php-скриптом, размещённом на другом хостинге. Хотя бы на другом сервере, особенно хорошо если в другом ДЦ — тогда стремится к нулю вероятность одновременных перебоев на обоих серверах. Но даже если php-скрипт будет проверять свой собственный сервер, то по косвенным уликам можно вычислить время возможного перебоя (например, если время между двумя соседними записями в лог скрипта превышает установленный таймаут).

Для работы нам понадобятся функции:

Здесь предполагается, что имя файла LOG будет задано константой перед вызовом функции.

А теперь сам скрипт мониторинга:

Только вот на виртуальных хостингах fsockopen часто отключают, потому при необходимости реализовать технологию callNoWait в клиентских проектах (парсер, импорт и т.д.) использую curl.

сайт-пациент/checkup.php

В моём конкретном случае мониторится сайт на WP, для проверки работоспособности сайта написан такой checkup.php :

Объявление функции bench писал выше. В результате запроса checkup.php в теле ответа возвращается время загрузки основного функционала движка WP.

По-хорошему, дисклеймер надо писать вначале. Но я решил предупредить только внимательных читателей. Остальные пусть с наскоку делают копипасту а потом хейтят меня в комментах — хоть какой-то фидбэк. Важная информация для внимательных читателей: здесь не реализовано никакой защиты

Источник

Проверка доступности сайта

Многие сайты доступны, но есть те которые либо уже не существуют, либо отдают 504, 500 код.
Вот с такими-то сайтами и проблема. В основном код срабатывает как надо. Через 2 секунды функция возвращает мне false.
Но иногда при проверке некоторых сайтов весь скрипт зависает, вплоть до ошибки об истечении 30 секунд на выполнение. Не понимаю почему. Сначало грешил на функцию которая берет файл с сайта, но потом после нескольких часов понял что код останавливается именно на функции проверки доступности сайта.

Подскажите в чем мой косяк?

Кстати на всякий случай вот код, который берет файл.

Помощь в написании контрольных, курсовых и дипломных работ здесь.

Проверка доступности имени пользователя на PHP
Всем привет. Что именно мне нужно поменять в этом файле, чтобы у меня сравнение шло из базы данных.

Проверка доступности сайта
Добрый день! Использую Embarcadero RAD Studio XE7 Нужно проверить доступность сайта с помощью.

Проверка internet connection. Проверка доступности сети
Добрый день. Для проверки Internet Connection советуют делать что-то вроде: private boolean.

Para bellum, Я понял что ты хочешь сказать. Но нет, не в цикле. В том-то и дело. Вызывается функция при загрузке страницы, но не чаще чем раз в 3-4 секунды.

Но почему то иногда намертво все зависает. Пробовал убирать ограничение на выполнение скрипта (30 сек). Но тогда страница бесконечно грузится. Вот как. Можно как-нибудь попробовать точно отследить на какой строке идет зависание?

Добавлено через 26 секунд
Para bellum, Я понял что ты хочешь сказать. Но нет, не в цикле. В том-то и дело. Вызывается функция при загрузке страницы, но не чаще чем раз в 3-4 секунды.

Но почему то иногда намертво все зависает. Пробовал убирать ограничение на выполнение скрипта (30 сек). Но тогда страница бесконечно грузится. Вот как. Можно как-нибудь попробовать точно отследить на какой строке идет зависание?

Источник

H Мониторинг доступности сервера или сайта с применением PHP в черновиках

Применения PHP для целей системного администрирования редкая вещь, но для решения простых задач — это вполне допустимо. На Хабре данная тематика освещена слабо. Но возможно представить ситуацию, когда у человека есть знания PHP и его основная работа не дает времени изучить что-то другое, например, Python или Perl. Вот для такой категории людей может пригодится эта статья.

Предлагаемый скрипт дает возможность пинговать серверы и получать код состояния HTTP. Соответственно можно оперативно узнать время выхода сайта из строя или отсутствие доступности какого-то сервера для ping. Оповещение приходит на email и СМС. Решение с почтой вряд ли вызовет вопросы, чего не скажешь об отправке СМС. Реализация отправки сообщений на телефон организована с помощью услуг сайта sms.ru. Данный сервис предоставляет до 60 бесплатных СМС программистам для своих разработок. Вам потребуется зарегистрироваться на сайте и в разделе «Программистам» взять готовый PHP-пример для отправки сообщений на свой телефон. Он будет выглядеть примерно так:

Практически без изменений пример попадет в скрипт. В вашем варианте будет другой ID и номер телефона соответственно.

Скрипт мониторинга рассчитан для работы на Linux системе. Обратите внимание, чтобы выполнить скрипт в терминале указывая просто название, его потребуется сделать исполняемым командой chmod +x и в начало текста программы добавить #!/usr/bin/env php, что уже сделано в нашем случае. Иначе, имя скрипта в терминале придется предварять словом php. Также, удобно запускать скрипт с помощью cron каждые 30 минут. Для обкатки рекомендую запустить вначале в терминале, если будут ошибки они отобразятся на экране.

Для правильной работы на компьютере должны быть установлены и настроены: PHP, PHP-CLI, sendmail.

Источник

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

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