PHP curl и file_get_contents возвращают основной веб-сайт, расположенный на сервере, когда я ввожу действительный URL без разрешения DNS - PullRequest
0 голосов
/ 16 февраля 2010

Когда я звоню следующее:

file_get_contents('http://whgfdw.ca');

или

$ch = curl_init();
curl_setopt($ch, CURLOPT_URL, 'http://whgfdw.ca');
curl_setopt($ch, CURLOPT_HEADER, 0);
curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);
curl_exec($ch);

Возвращаемым значением является HTML-код домашней страницы основного сайта, расположенной на локальном (выделенном) веб-сервере. Буду признателен, если кто-нибудь поможет мне понять это? Возможно, я что-то упускаю из виду.

Я не могу использовать простую проверку URL, потому что http://whgfdw.ca - отличный URL; у него просто нет записи DNS.

Моя идеальная функциональность - уметь отследить ошибку поиска DNS или 404 или случай отсутствия контента, а затем действовать с ним. Спасибо!

1 Ответ

2 голосов
/ 16 февраля 2010

Если вы получили правильный ответ, значит, эта запись DNS где-то существует. Он может быть на внутреннем DNS-сервере, в файле / etc / hosts локального сервера или где-то еще в стеке, но суть в том, что он каким-то образом разрешается. Таким образом, вопрос становится тем, куда вступает его решение. Возможно, что существует приложение, которое настроено для разрешения всех поисков на локальном сервере (аналогично тому, как openDNS и многие интернет-провайдеры будут разрешать неразрешенное DNS-имя на своей странице поиска).

Учитывая, что его каким-то образом разрешают, на самом деле нет способа проверить его, если вы не сравните содержание ответа с каким-то ожидаемым содержимым. Поймать 404 довольно легко, вы также можете настроить обратный поиск в php, чтобы поймать нерешенные имена, я верю. Но сначала я должен подумать над этой резолюцией.

...