Добрый день.
С интересом прочла статью на данном сайте: http://php.su/articles/?cat=exam...les&page=064
Жаль непосредственно необходимого мне скрипта там нет.
Нужен скрипт для проверки существования доменного имени, т.е. имеется окошечко, в которое вводим желаемое доменное имя, жмакаем кнопочку "проверить" и он выдает что-нить типа "доменное имя свободно"/"доменное имя занято". Есть ли у кого-нибудь соображения по этому поводу или примеры написания? Очень прошу помощи.
С уважением, Гульнара.
1. slave - 20 Января, 2010 - 14:41:27 - перейти к сообщению
2. EuGen - 20 Января, 2010 - 15:00:09 - перейти к сообщению
Для определения информации о доменах есть единственный способ автоматического решения. А именно - запрос к регистратору.
Как например, на whois.domaintools.com
Но здесь есть одно но - регистраторы не допустят, чтобы их базы вытаскивали через такие запросы. Существуют различные ограничения на количество запросов/частоту/локацию и т.п. в зависимости от запрашиваемого ресурса.
Отвлекаясь от этого задача сводится к запросу требуемой страницы при помощи cURL (как пример whois.domaintools.com/microsoft.com) и разбору полученных результатов.
При этом стоит учитывать возможность смены представления данных, которое использует регистратор при показе страницы (в общем-то они это делают специально для затруднения сбора информации доменными пауками)
Возможность обойти тоже пока что единственная - использовать прокси-сервер. То есть, получать списка прокси-серверов с каких-либо прокси-листов, тестировать их на безопасность для использования, и направлять запросы cURL через них.
Стоит учитывать, что прокси-листы постоянно меняются, какие-то прокси появляются, какие то исчезают.
Тестировать же на безопасность использования прокси сервер можно так: сделать через него запрос на собственный же скрипт, который посмотрит переменные окружения. Если среди них не будет данных о первоначальном источнике запроса, значит, прокси полностью анонимен и его можно использовать.
А вообще написание доменных пауков дело неблагодарное. Регистраторы вроде как хотели вообще переходить к выводу информации через графические библиотеки (то есть картинками, которые уж точно невозможно проанализировать с помощью регулярных выражений).
Как например, на whois.domaintools.com
Но здесь есть одно но - регистраторы не допустят, чтобы их базы вытаскивали через такие запросы. Существуют различные ограничения на количество запросов/частоту/локацию и т.п. в зависимости от запрашиваемого ресурса.
Отвлекаясь от этого задача сводится к запросу требуемой страницы при помощи cURL (как пример whois.domaintools.com/microsoft.com) и разбору полученных результатов.
При этом стоит учитывать возможность смены представления данных, которое использует регистратор при показе страницы (в общем-то они это делают специально для затруднения сбора информации доменными пауками)
Возможность обойти тоже пока что единственная - использовать прокси-сервер. То есть, получать списка прокси-серверов с каких-либо прокси-листов, тестировать их на безопасность для использования, и направлять запросы cURL через них.
Стоит учитывать, что прокси-листы постоянно меняются, какие-то прокси появляются, какие то исчезают.
Тестировать же на безопасность использования прокси сервер можно так: сделать через него запрос на собственный же скрипт, который посмотрит переменные окружения. Если среди них не будет данных о первоначальном источнике запроса, значит, прокси полностью анонимен и его можно использовать.
А вообще написание доменных пауков дело неблагодарное. Регистраторы вроде как хотели вообще переходить к выводу информации через графические библиотеки (то есть картинками, которые уж точно невозможно проанализировать с помощью регулярных выражений).
3. Мелкий - 20 Января, 2010 - 15:07:16 - перейти к сообщению
EuGen, мм, а я думаю, что будет достаточно DNS-сервер пнуть. Только проверить надо будет, что возвращается, если DNS-имя свободно.
http://php.su/functions/?dns_get_record
http://php.su/functions/?dns_get_record
4. EuGen - 20 Января, 2010 - 15:36:54 - перейти к сообщению
Ничего не вернет она в этом случае. (вернее, пустой массив вернет)
Я отталкивался от того, что задача опеределения занятости доменов как правило исходит из необходимости знать информацию о владельцах, сроке действия записи и т.п. (то, для чего создаются доменные пауки) Поэтому рекомендовал более общий подход, позволяющий это все реализовать.
Правда, если нужен действительно простой способ узнать именно занятость, такая проверка вполне подойдет.
Стоит учитывать так же то, что она будет недоступна в системах Windows а так же не всегда возвращает корректные результаты на *BSD (правда в случае *BSD, есть библиотека Net_DNS)
Я отталкивался от того, что задача опеределения занятости доменов как правило исходит из необходимости знать информацию о владельцах, сроке действия записи и т.п. (то, для чего создаются доменные пауки) Поэтому рекомендовал более общий подход, позволяющий это все реализовать.
Правда, если нужен действительно простой способ узнать именно занятость, такая проверка вполне подойдет.
Стоит учитывать так же то, что она будет недоступна в системах Windows а так же не всегда возвращает корректные результаты на *BSD (правда в случае *BSD, есть библиотека Net_DNS)
5. vitaliy_mad - 20 Января, 2010 - 16:47:32 - перейти к сообщению
отсутствие ответа от dns-сервера не говорит о свободности имени... для пример сравните результаты:
и
это мой домен, но в ДНС запись пока отсутствует...