Определение валидности ссылки по url

snowman

Новичок
Определение валидности ссылки по url

Очень бы хотелось написать скрипт, проверяющий ссылку на ее существование, и определяющий ее размер. Имеется бд с явно заданными ссылками на файлы в интернете(http://domain.ru/.../dfg.zip, http://.../sd.exe). При использовании сокетов, у меня ничего не получилось.
$fsock = fsockopen($host, $port);
fputs($fsock, "HEAD $path HTTP/1.0\n\n");
...
То ошибка 302, и Location восновном указывает либо на сайт хостеров, либо на страницу ошибки 404, иногда на страницу с ссылкой на искомый файл. При проверке сайтов на народе почему-то всегда 404 not found :\ И другие ошибки :(
Существует ли универсальное решение этой проблемы? Может стоит дополнительные запросы в $fsock вставлять? На freesoft.ru эта проблема похоже решена. Наверное можно иммитировать запрос обычного браузера. Или нет? Подскажите пожалуйста.
p.s.: Нашел несколько подобных тем на форуме, но не смог понять каким образом можно это реализовать.
 

SiMM

Новичок
Re: Определение валидности ссылки по url

Автор оригинала: snowman
То ошибка 302, и Location восновном указывает либо на сайт хостеров, либо на страницу ошибки 404, иногда на страницу с ссылкой на искомый файл. При проверке сайтов на народе почему-то всегда 404 not found :\ И другие ошибки :(
Потому что могут referer'а проверять + сессию/куку.
Существует ли универсальное решение этой проблемы?
Нет.
На freesoft.ru эта проблема похоже решена.
С чего ты это решил?
Наверное можно иммитировать запрос обычного браузера.
Можно. Нельзя предсказать, что от тебя сервер ожидает, чтобы отдать контент.
 

snowman

Новичок
На freesoft.ru при сообщение пользавателем о нерабочей ссылке выдается: "Наш робот проверил ссылку, все работает. Некоторые сервера бесплатного хостинга (например, narod.ru) открывают промежуточную страницу перед скачиванием, что ошибочно воспринимается как нерабочая ссылка." Видимо ссылки проверяются автоматически.
Подскажите, пожалуйста, какой запрос нужен narod.yandex.ru, чтобы он выдавал не 404 ошибку, а промежуточную страницу перед скачиванием.
 

SiMM

Новичок
Автор оригинала: snowman
На freesoft.ru ... выдается: "... Некоторые сервера бесплатного хостинга (например, narod.ru) открывают промежуточную страницу перед скачиванием, что ошибочно воспринимается как нерабочая ссылка."
Ну и где ты тут увидел, что они решили эту проблему? Они же чёрным по белому написали - это ошибочно воспринимается как нерабочая ссылка.
 

snowman

Новичок
SiMM, ты конечно прав, в целом они ее не решили. Но меня бы такой скрипт как у них полностью устроил. У меня даже не получается получить страницы с сайтов на народе.ру(404 not found) :( Может даш пару советов, какой запрос посылать серверу(HEAD(GET) $path HTTP/1.0\n\n наверное недостаточно) или ссылку где по этой теме почитать можно?
 
Сверху