Сведения о вопросе

Ислам

23:59, 22nd August, 2020

Теги

PHP    

PHP. Как лучше всего проверить существует ли сайт или нет

Просмотров: 357   Ответов: 9

есть адрес сайта, каким оптимальным способом можно проверить его существование?
CURL
get_headers
fsockopen
fopen



  Сведения об ответе

ЯЯ__4

15:50, 4th August, 2020

Делал такую реализацию на PHP, вот рабочий код:

<?

$website = «www.site.ru»
// Открываем соединение с сокетом и связываем его с переменной
$sock = fsockopen ($website, 80, $errno, $errstr);
//Если соединение не установлено, то будет ошибка
if (!$sock)
{
echo("$errno($errstr)");
return;
}
//Иначе проверяем доступность ресурса и записываем результат
else
{
fputs ($sock, «GET / HTTP/1.0\r\nHost: www.example.com\r\n\r\n»);
$status = substr(str_replace(":",":      ", fgets($sock,128)), 9);
if(substr($status,0,6)!=«200 OK»)
echo «Сайт недоступен!»
}
//Закрываем соединение
fclose ($sock);

?>


  Сведения об ответе

nYU

09:39, 8th August, 2020

Использовать функцию gethostbyname:

www.php.net/manual/en/function.gethostbyname.php

Если выдаст ip, значит сайт зарегистрирован и делегирован


  Сведения об ответе

darknet

16:27, 15th August, 2020

Если просто проверить, то curl. Написан на C. Т.е. языке более низкого уровня… Следовательно работать должен побыстрее… А вообще если вы спамом массовым не занимаетесь или не изобретаете пауков каких-нибудь или еще что-то в этом роде, пишите так как вам удобно.


  Сведения об ответе

SSESION

18:56, 21st August, 2020

Никак.
Если домен указывает на какой-либо IP и на этом IP крутится хоть какой то сайт — то по домену откроется дефолтный сайт для IP.


  Сведения об ответе

DINO

03:23, 29th August, 2020

Ну более-менее приемлемый вариант — читать статус-код HTTP. Это позволит лишь узнать, что на данном домене крутится веб-сервер. Но на самом деле там может лежать REST backend для AJAX морды, например. Стопроцентной вероятности никакая более-менее быстрая проверка не даст.


  Сведения об ответе

lesha

10:12, 15th August, 2020

Не совсем понятно что Вы хотите сделать. Если узнать существует ли (делегирован) домен — обратитесь CURLом на Whois-сервис, коих в интернете множество, и распарсите ответ. Если, вертится ли по адресу, указанному доменным именем, веб-сервер, CURLом дёрните это имя, и отпарсите ответ. Если отвалитесь по таймауту — нету, если ответят — что-то есть. А если жив ли в данным момент сайт — то ещё отпарсите и код ответа/ошибки.


  Сведения об ответе

appple

08:20, 7th August, 2020

curl example.com -I


  Сведения об ответе

lesha

03:49, 9th August, 2020

nsllokup


  Сведения об ответе

lourence

12:05, 12th August, 2020

пардон, nslookup


Ответить на вопрос

Чтобы ответить на вопрос вам нужно войти в систему или зарегистрироваться