В предыдущем посте я показал как скачать DMOZ и отделить все ссылки. Теперь я хочу показать как искать свободные домены из DMOZ при помощи этого списка. Если вам по какой-то причине не хочется самостоятельно делать свой обновленный список сайтов — предлагаю скачать мою версию или заказать работу на сайте http://www.weblancer.net/. Распакуйте этот архив в папку со скриптом.

Так как база сайтов слишком большая — предлагаю для начала избавиться от некоторых URL, которые нам наверняка не подойдут. Итак, скрипт:

<?php
  // Не прерывать скрипт в течение часа
  set_time_limit(3600);
  // Открываем файл со ссылками на чтение
  if($f = fopen('links.txt','r')){
    // Создаем файл, куда будем записывать сайты
    if($w = fopen('sites.txt','w')){
      while(!feof($f)) {
        $line = fgets($f,4096);
        $wiki = strpos($line, 'wikipedia');
        $edu = strpos($line, 'edu');
        $gov = strpos($line, 'gov');
        if(($wiki===false) and ($edu===false) and ($gov===false)){
          fwrite($w,$line);
        }
      }
      fclose($w);
    }
    fclose($f);
  }    
  echo('complete!');
?>

На входе был файл со ссылками links.txt, на выходе получили файл меньшего объема sites.txt, который не содержит в себе ссылок со словами wikipedia, edu и gov. Вы можете убрать и другие слова. Переименуйте его обратно в links.txt.

Теперь будем искать то, что нам нужно. В скрипте ниже замените значение переменной $string на нужное.

<?php
  // Не прерывать скрипт в течение часа
  set_time_limit(3600);
  
  // нужная строка
  $string = '.ru'; // часть домена или доменная зона
  
  // Открываем файл со ссылками на чтение
  if($f = fopen('links.txt','r')){
    // Создаем файл, куда будем записывать сайты
    if($w = fopen($string . '.txt','w')){
      while(!feof($f)) {
        $line = fgets($f,4096);
        $wiki = strpos($line, $string);
        if($wiki===false){}
        else{
          fwrite($w,$line);
        }
      }
      fclose($w);
    }
    fclose($f);
  }    
  echo('complete!');
?>

Данный скрипт сделает выборку всех доменов DMOZ в зоне RU. Я решил для начала сделать список с доменами ucoz, потому что они бесплатны и вряд ли кому-то нужны (в отличие от RU). Для этого просто заменил $string = ‘.ru’; на $string = ‘.ucoz’;. Вам я предлагаю пошерстить бесплатные хостинги и более-менее экзотические зоны — там наверняка таких доменов куча.

Теперь проведем быструю проверку полученного списка на ответа сервера, чтобы определить тех, которые недоступны. Я решил сделать это бесплатной программой «Определяйка». Вы можете использовать любую другую. Нажимаем кнопку загрузить, добавляем список слов или файл с ним.добавляем список доменов в "Определяйку" выставляем Сервер->IP и/или Сервер->Код ответа сервера. "Интерфейс Определяйки"Отделяем те, что имеют код ответа сервера n/f (т.е 0), можно задать <200. отделяем оставшиеся доменыКод ответа сервера <200Оставшийся список проверяем по обстоятельствам — повторная проверка IP, Whois, ручная проверка, и т.д. Главное, что список стал довольно маленьким и найти бесплатный домен в DMOZ представляется уже вполне реальным. Мне это пока делать некогда, так что я остановлюсь на нескольких бесплатных ucoz-доменах. А вам желаю удачи! Если получится заполучить какой-нибудь хороший домен из DMOZ — не забудьте отписаться в комментариях 😉