PHP.SU

Программирование на PHP, MySQL и другие веб-технологии
PHP.SU Портал     На главную страницу форума Главная     Помощь Помощь     Поиск Поиск     Поиск Яндекс Поиск Яндекс     Вакансии  Пользователи Пользователи


 Страниц (1): [1]   

> Без описания
slave
Отправлено: 20 Января, 2010 - 14:41:27
Post Id


Новичок


Покинул форум
Сообщений всего: 2
Дата рег-ции: Янв. 2010  
Откуда: Воткинск


Помог: 0 раз(а)




Добрый день.

С интересом прочла статью на данном сайте: http://php.su/articles/?cat=exam...les&page=064

Жаль непосредственно необходимого мне скрипта там нет.
Нужен скрипт для проверки существования доменного имени, т.е. имеется окошечко, в которое вводим желаемое доменное имя, жмакаем кнопочку "проверить" и он выдает что-нить типа "доменное имя свободно"/"доменное имя занято". Есть ли у кого-нибудь соображения по этому поводу или примеры написания? Очень прошу помощи.

С уважением, Гульнара.
 
 Top
EuGen Администратор
Отправлено: 20 Января, 2010 - 15:00:09
Post Id


Профессионал


Покинул форум
Сообщений всего: 9097
Дата рег-ции: Июнь 2007  
Откуда: Berlin


Помог: 707 раз(а)




Для определения информации о доменах есть единственный способ автоматического решения. А именно - запрос к регистратору.
Как например, на whois.domaintools.com
Но здесь есть одно но - регистраторы не допустят, чтобы их базы вытаскивали через такие запросы. Существуют различные ограничения на количество запросов/частоту/локацию и т.п. в зависимости от запрашиваемого ресурса.
Отвлекаясь от этого задача сводится к запросу требуемой страницы при помощи cURL (как пример whois.domaintools.com/microsoft.com) и разбору полученных результатов.
При этом стоит учитывать возможность смены представления данных, которое использует регистратор при показе страницы (в общем-то они это делают специально для затруднения сбора информации доменными пауками)
Возможность обойти тоже пока что единственная - использовать прокси-сервер. То есть, получать списка прокси-серверов с каких-либо прокси-листов, тестировать их на безопасность для использования, и направлять запросы cURL через них.
Стоит учитывать, что прокси-листы постоянно меняются, какие-то прокси появляются, какие то исчезают.
Тестировать же на безопасность использования прокси сервер можно так: сделать через него запрос на собственный же скрипт, который посмотрит переменные окружения. Если среди них не будет данных о первоначальном источнике запроса, значит, прокси полностью анонимен и его можно использовать.
А вообще написание доменных пауков дело неблагодарное. Регистраторы вроде как хотели вообще переходить к выводу информации через графические библиотеки (то есть картинками, которые уж точно невозможно проанализировать с помощью регулярных выражений).


-----
Есть в мире две бесконечные вещи - это Вселенная и человеческая глупость. Но насчет первой .. я не уверен.
 
 Top
Мелкий Супермодератор
Отправлено: 20 Января, 2010 - 15:07:16
Post Id



Активный участник


Покинул форум
Сообщений всего: 11888
Дата рег-ции: Июль 2009  
Откуда: Россия, Санкт-Петербург


Помог: 614 раз(а)




EuGen, мм, а я думаю, что будет достаточно DNS-сервер пнуть. Только проверить надо будет, что возвращается, если DNS-имя свободно.
http://php.su/functions/?dns_get_record

(Отредактировано автором: 20 Января, 2010 - 15:08:52)



-----
PostgreSQL DBA
 
 Top
EuGen Администратор
Отправлено: 20 Января, 2010 - 15:36:54
Post Id


Профессионал


Покинул форум
Сообщений всего: 9097
Дата рег-ции: Июнь 2007  
Откуда: Berlin


Помог: 707 раз(а)




Ничего не вернет она в этом случае. (вернее, пустой массив вернет)
Я отталкивался от того, что задача опеределения занятости доменов как правило исходит из необходимости знать информацию о владельцах, сроке действия записи и т.п. (то, для чего создаются доменные пауки) Поэтому рекомендовал более общий подход, позволяющий это все реализовать.
Правда, если нужен действительно простой способ узнать именно занятость, такая проверка вполне подойдет.
Стоит учитывать так же то, что она будет недоступна в системах Windows а так же не всегда возвращает корректные результаты на *BSD (правда в случае *BSD, есть библиотека Net_DNS)


-----
Есть в мире две бесконечные вещи - это Вселенная и человеческая глупость. Но насчет первой .. я не уверен.
 
 Top
vitaliy_mad
Отправлено: 20 Января, 2010 - 16:47:32
Post Id


Участник


Покинул форум
Сообщений всего: 1107
Дата рег-ции: Окт. 2008  
Откуда: Украина, Мариуполь


Помог: 0 раз(а)




отсутствие ответа от dns-сервера не говорит о свободности имени... для пример сравните результаты:

и

это мой домен, но в ДНС запись пока отсутствует...
 
 Top
EuGen Администратор
Отправлено: 20 Января, 2010 - 17:32:48
Post Id


Профессионал


Покинул форум
Сообщений всего: 9097
Дата рег-ции: Июнь 2007  
Откуда: Berlin


Помог: 707 раз(а)




Это тот случай, когда запись о DNS еще не успела разойтись по серверам. Весьма нечастый случай, я думаю, но если это важно, то следует учитывать.


-----
Есть в мире две бесконечные вещи - это Вселенная и человеческая глупость. Но насчет первой .. я не уверен.
 
 Top
vitaliy_mad
Отправлено: 20 Января, 2010 - 17:34:54
Post Id


Участник


Покинул форум
Сообщений всего: 1107
Дата рег-ции: Окт. 2008  
Откуда: Украина, Мариуполь


Помог: 0 раз(а)




EuGen пишет:
когда запись о DNS еще не успела разойтись по серверам
он не не успела. Она просто отсутствует. у ДНС-сервера нет IN A записо об этом домене... и таких примеров много. когда домен зарегестрирован, но не используеться, запись о нем часто удаляют с ДНС-сервера.
 
 Top
EuGen Администратор
Отправлено: 20 Января, 2010 - 17:36:43
Post Id


Профессионал


Покинул форум
Сообщений всего: 9097
Дата рег-ции: Июнь 2007  
Откуда: Berlin


Помог: 707 раз(а)




Вот что мы увидим, если сделаем:
PHP:
скопировать код в буфер обмена
  1.  
  2. $rgTest=dns_get_record('nenado.com');
  3. echo('<pre>');
  4. print_r($rgTest);
  5.  

:
CODE (htmlphp):
скопировать код в буфер обмена
  1.  
  2. (
  3.     [0] => Array
  4.         (
  5.             [host] => nenado.com
  6.             [type] => NS
  7.             [target] => ns.mad-net.org.ua
  8.             [class] => IN
  9.             [ttl] => 172800
  10.         )
  11.  
  12.     [1] => Array
  13.         (
  14.             [host] => nenado.com
  15.             [type] => NS
  16.             [target] => ns2.mad-net.org.ua
  17.             [class] => IN
  18.             [ttl] => 172800
  19.         )
  20.  
  21. )
  22.  
  23.  

Я это имею ввиду - нам ведь и не надо знать этой записи..


-----
Есть в мире две бесконечные вещи - это Вселенная и человеческая глупость. Но насчет первой .. я не уверен.
 
 Top
vitaliy_mad
Отправлено: 20 Января, 2010 - 17:48:01
Post Id


Участник


Покинул форум
Сообщений всего: 1107
Дата рег-ции: Окт. 2008  
Откуда: Украина, Мариуполь


Помог: 0 раз(а)




согласен. эта функция выдает результаты whois данных.
 
 Top
EuGen Администратор
Отправлено: 20 Января, 2010 - 17:50:57
Post Id


Профессионал


Покинул форум
Сообщений всего: 9097
Дата рег-ции: Июнь 2007  
Откуда: Berlin


Помог: 707 раз(а)




Да. Ну, а почему все-таки не всегда она может быть использована, я отписал постом выше.


-----
Есть в мире две бесконечные вещи - это Вселенная и человеческая глупость. Но насчет первой .. я не уверен.
 
 Top
slave
Отправлено: 21 Января, 2010 - 14:09:56
Post Id


Новичок


Покинул форум
Сообщений всего: 2
Дата рег-ции: Янв. 2010  
Откуда: Воткинск


Помог: 0 раз(а)




Ддда... думалось, что это дело попроще... Спасибо за рекомендации, хотя чую не разберусь))
 
 Top
Страниц (1): [1]
Сейчас эту тему просматривают: 1 (гостей: 1, зарегистрированных: 0)
« Обсуждение статей »


Все гости форума могут просматривать этот раздел.
Только зарегистрированные пользователи могут создавать новые темы в этом разделе.
Только зарегистрированные пользователи могут отвечать на сообщения в этом разделе.
 



Powered by PHP  Powered By MySQL  Powered by Nginx  Valid CSS  RSS

 
Powered by ExBB FM 1.0 RC1. InvisionExBB