Warning: Cannot use a scalar value as an array in /home/admin/public_html/forum/include/fm.class.php on line 757
Warning: Invalid argument supplied for foreach() in /home/admin/public_html/forum/include/fm.class.php on line 770
Warning: Invalid argument supplied for foreach() in /home/admin/public_html/forum/topic.php on line 737 Форумы портала PHP.SU :: Очень нужен php скрипт для проверки существования доменного имени
Жаль непосредственно необходимого мне скрипта там нет.
Нужен скрипт для проверки существования доменного имени, т.е. имеется окошечко, в которое вводим желаемое доменное имя, жмакаем кнопочку "проверить" и он выдает что-нить типа "доменное имя свободно"/"доменное имя занято". Есть ли у кого-нибудь соображения по этому поводу или примеры написания? Очень прошу помощи.
С уважением, Гульнара.
EuGen
Отправлено: 20 Января, 2010 - 15:00:09
Профессионал
Покинул форум
Сообщений всего: 9095
Дата рег-ции: Июнь 2007 Откуда: Berlin
Помог: 707 раз(а)
Для определения информации о доменах есть единственный способ автоматического решения. А именно - запрос к регистратору.
Как например, на whois.domaintools.com
Но здесь есть одно но - регистраторы не допустят, чтобы их базы вытаскивали через такие запросы. Существуют различные ограничения на количество запросов/частоту/локацию и т.п. в зависимости от запрашиваемого ресурса.
Отвлекаясь от этого задача сводится к запросу требуемой страницы при помощи cURL (как пример whois.domaintools.com/microsoft.com) и разбору полученных результатов.
При этом стоит учитывать возможность смены представления данных, которое использует регистратор при показе страницы (в общем-то они это делают специально для затруднения сбора информации доменными пауками)
Возможность обойти тоже пока что единственная - использовать прокси-сервер. То есть, получать списка прокси-серверов с каких-либо прокси-листов, тестировать их на безопасность для использования, и направлять запросы cURL через них.
Стоит учитывать, что прокси-листы постоянно меняются, какие-то прокси появляются, какие то исчезают.
Тестировать же на безопасность использования прокси сервер можно так: сделать через него запрос на собственный же скрипт, который посмотрит переменные окружения. Если среди них не будет данных о первоначальном источнике запроса, значит, прокси полностью анонимен и его можно использовать.
А вообще написание доменных пауков дело неблагодарное. Регистраторы вроде как хотели вообще переходить к выводу информации через графические библиотеки (то есть картинками, которые уж точно невозможно проанализировать с помощью регулярных выражений).
----- Есть в мире две бесконечные вещи - это Вселенная и человеческая глупость. Но насчет первой .. я не уверен.
Мелкий
Отправлено: 20 Января, 2010 - 15:07:16
Активный участник
Покинул форум
Сообщений всего: 11926
Дата рег-ции: Июль 2009 Откуда: Россия, Санкт-Петербург
Помог: 618 раз(а)
EuGen, мм, а я думаю, что будет достаточно DNS-сервер пнуть. Только проверить надо будет, что возвращается, если DNS-имя свободно.
http://php.su/functions/?dns_get_record
Покинул форум
Сообщений всего: 9095
Дата рег-ции: Июнь 2007 Откуда: Berlin
Помог: 707 раз(а)
Ничего не вернет она в этом случае. (вернее, пустой массив вернет)
Я отталкивался от того, что задача опеределения занятости доменов как правило исходит из необходимости знать информацию о владельцах, сроке действия записи и т.п. (то, для чего создаются доменные пауки) Поэтому рекомендовал более общий подход, позволяющий это все реализовать.
Правда, если нужен действительно простой способ узнать именно занятость, такая проверка вполне подойдет.
Стоит учитывать так же то, что она будет недоступна в системах Windows а так же не всегда возвращает корректные результаты на *BSD (правда в случае *BSD, есть библиотека Net_DNS)
----- Есть в мире две бесконечные вещи - это Вселенная и человеческая глупость. Но насчет первой .. я не уверен.
vitaliy_mad
Отправлено: 20 Января, 2010 - 16:47:32
Участник
Покинул форум
Сообщений всего: 1107
Дата рег-ции: Окт. 2008 Откуда: Украина, Мариуполь
Помог: 0 раз(а)
отсутствие ответа от dns-сервера не говорит о свободности имени... для пример сравните результаты:
Покинул форум
Сообщений всего: 9095
Дата рег-ции: Июнь 2007 Откуда: Berlin
Помог: 707 раз(а)
Это тот случай, когда запись о DNS еще не успела разойтись по серверам. Весьма нечастый случай, я думаю, но если это важно, то следует учитывать.
----- Есть в мире две бесконечные вещи - это Вселенная и человеческая глупость. Но насчет первой .. я не уверен.
vitaliy_mad
Отправлено: 20 Января, 2010 - 17:34:54
Участник
Покинул форум
Сообщений всего: 1107
Дата рег-ции: Окт. 2008 Откуда: Украина, Мариуполь
Помог: 0 раз(а)
EuGen пишет:
когда запись о DNS еще не успела разойтись по серверам
он не не успела. Она просто отсутствует. у ДНС-сервера нет IN A записо об этом домене... и таких примеров много. когда домен зарегестрирован, но не используеться, запись о нем часто удаляют с ДНС-сервера.
Все гости форума могут просматривать этот раздел. Только зарегистрированные пользователи могут создавать новые темы в этом разделе. Только зарегистрированные пользователи могут отвечать на сообщения в этом разделе.