Главная страница О Web-студии Разработка сайтов Интернет-реклама CD-презентации 3D-графика Программное обеспечение
PHP на примерах (2 издание). Авторы: Кузнецов М.В., Симдянов И.В. PHP 5/6. В подлиннике. Авторы: Кузнецов М.В., Симдянов И.В. Самоучитель PHP 5 / 6 (3 издание). Авторы: Кузнецов М.В., Симдянов И.В. PHP. Практика создание сайтов. Авторы: Кузнецов М.В., Симдянов И.В. Головоломки на PHP для хакера (второе издание). Авторы: Кузнецов М.В., Симдянов И.В. Объектно-ориентированное программирование на PHP. Авторы: Кузнецов М.В., Симдянов И.В. MySQL на примерах. Авторы: Кузнецов М.В., Симдянов И.В. C++. Мастер-класс в задачах и примерах. Авторы: Кузнецов М.В., Симдянов И.В. Социальная инженерия и социальные хакеры . Авторы: Кузнецов М.В., Симдянов И.В. PHP. Народные советы. Авторы: Кузнецов М.В., Симдянов И.В. MySQL 5. В подлиннике. Авторы: Кузнецов М.В., Симдянов И.В. Программирование: ступени карьеры. Авторы: Кузнецов М.В., Симдянов И.В. PHP Security & Cracking Puzzles. Авторы: Кузнецов М.В., Симдянов И.В. Самоучитель MySQL 5. Авторы: Кузнецов М.В., Симдянов И.В.
Консультации от известных специалистов и авторов многих книг

Информационный портал
«SoftTime-INFO»


Примеры скриптов на PHP

Вернуться в примеры скриптов

Скрипт, определяющий занят домен или нет


На многих сайтах хост-провайдеров можно часто увидеть сервис, который позволяет осуществить проверку домена - занят он или нет. Приведённый ниже скрипт раскрывает детали такой проверки.

<?php 
  // Устанавливаем не ограниченное время выполнения скрипта
  set_time_limit(0);
  $servers = array(
    array("ac","whois.nic.ac","No match"),
    array("ac.cn","whois.cnnic.net.cn","No entries found"),
    array("ac.jp","whois.nic.ad.jp","No match"),
    array("ac.uk","whois.ja.net","no entries"),
    array("ad.jp","whois.nic.ad.jp","No match"),
    array("adm.br","whois.nic.br","No match"),
    array("adv.br","whois.nic.br","No match"),
    array("aero","whois.information.aero","is available"),
    array("ag","whois.nic.ag","does not exist"),
    array("agr.br","whois.nic.br","No match"),
    array("ah.cn","whois.cnnic.net.cn","No entries found"),
    array("al","whois.ripe.net","No entries found"),
    array("am.br","whois.nic.br","No match"),
    array("arq.br","whois.nic.br","No match"),
    array("at","whois.nic.at","nothing found"),
    array("au","whois.aunic.net","No Data Found"),
    array("art.br","whois.nic.br","No match"),
    array("as","whois.nic.as","Domain Not Found"),
    array("asn.au","whois.aunic.net","No Data Found"),
    array("ato.br","whois.nic.br","No match"),
    array("be","whois.geektools.com","No such domain"),
    array("bg","whois.digsys.bg","does not exist"),
    array("bio.br","whois.nic.br","No match"),
    array("biz","whois.biz","Not found"),
    array("bj.cn","whois.cnnic.net.cn","No entries found"),
    array("bmd.br","whois.nic.br","No match"),
    array("br","whois.registro.br","No match"),
    array("ca","whois.cira.ca","Status: AVAIL"),
    array("cc","whois.nic.cc","No match"),
    array("cd","whois.cd","No match"),
    array("ch","whois.nic.ch","We do not have an entry"),
    array("cim.br","whois.nic.br","No match"),
    array("ck","whois.ck-nic.org.ck","No entries found"),
    array("cl","whois.nic.cl","no existe"),
    array("cn","whois.cnnic.net.cn","No entries found"),
    array("cng.br","whois.nic.br","No match"),
    array("cnt.br","whois.nic.br","No match"),
    array("com","whois.verisign-grs.net","No match"),
    array("com.au","whois.aunic.net","No Data Found"),
    array("com.br","whois.nic.br","No match"),
    array("com.cn","whois.cnnic.net.cn","No entries found"),
    array("com.eg","whois.ripe.net","No entries found"),
    array("com.hk","whois.hknic.net.hk","No Match for"),
    array("com.mx","whois.nic.mx","Nombre del Dominio"),
    array("com.ru","whois.ripn.ru","No entries found"),
    array("com.tw","whois.twnic.net","NO MATCH TIP"),
    array("conf.au","whois.aunic.net","No entries found"),
    array("co.jp","whois.nic.ad.jp","No match"),
    array("co.uk","whois.nic.uk","No match for"),
    array("cq.cn","whois.cnnic.net.cn","No entries found"),
    array("csiro.au","whois.aunic.net","No Data Found"),
    array("cx","whois.nic.cx","No match"),
    array("cz","whois.nic.cz","No data found"),
    array("de","whois.denic.de","No entries found"),
    array("dk","whois.dk-hostmaster.dk","No entries found"),
    array("ecn.br","whois.nic.br","No match"),
    array("ee","whois.eenet.ee","NOT FOUND"),
    array("edu","whois.verisign-grs.net","No match"),
    array("edu.au","whois.aunic.net","No Data Found"),
    array("edu.br","whois.nic.br","No match"),
    array("eg","whois.ripe.net","No entries found"),
    array("es","whois.ripe.net","No entries found"),
    array("esp.br","whois.nic.br","No match"),
    array("etc.br","whois.nic.br","No match"),
    array("eti.br","whois.nic.br","No match"),
    array("eun.eg","whois.ripe.net","No entries found"),
    array("emu.id.au","whois.aunic.net","No Data Found"),
    array("eng.br","whois.nic.br","No match"),
    array("far.br","whois.nic.br","No match"),
    array("fi","whois.ripe.net","No entries found"),
    array("fj","whois.usp.ac.fj",""),
    array("fj.cn","whois.cnnic.net.cn","No entries found"),
    array("fm.br","whois.nic.br","No match"),
    array("fnd.br","whois.nic.br","No match"),
    array("fo","whois.ripe.net","no entries found"),
    array("fot.br","whois.nic.br","No match"),
    array("fst.br","whois.nic.br","No match"),
    array("fr","whois.nic.fr","No entries found"),
    array("g12.br","whois.nic.br","No match"),
    array("gd.cn","whois.cnnic.net.cn","No entries found"),
    array("ge","whois.ripe.net","no entries found"),
    array("ggf.br","whois.nic.br","No match"),
    array("gl","whois.ripe.net","no entries found"),
    array("gr","whois.ripe.net","no entries found"),
    array("gr.jp","whois.nic.ad.jp","No match"),
    array("gs","whois.adamsnames.tc","is not registered"),
    array("gs.cn","whois.cnnic.net.cn","No entries found"),
    array("gov.au","whois.aunic.net","No Data Found"),
    array("gov.br","whois.nic.br","No match"),
    array("gov.cn","whois.cnnic.net.cn","No entries found"),
    array("gov.hk","whois.hknic.net.hk","No Match for"),
    array("gob.mx","whois.nic.mx","Nombre del Dominio"),
    array("gs","whois.adamsnames.tc","is not registered"),
    array("gz.cn","whois.cnnic.net.cn","No entries found"),
    array("gx.cn","whois.cnnic.net.cn","No entries found"),
    array("he.cn","whois.cnnic.net.cn","No entries found"),
    array("ha.cn","whois.cnnic.net.cn","No entries found"),
    array("hb.cn","whois.cnnic.net.cn","No entries found"),
    array("hi.cn","whois.cnnic.net.cn","No entries found"),
    array("hl.cn","whois.cnnic.net.cn","No entries found"),
    array("hn.cn","whois.cnnic.net.cn","No entries found"),
    array("hm","whois.registry.hm","(null)"),
    array("hk","whois.hknic.net.hk","No Match for"),
    array("hk.cn","whois.cnnic.net.cn","No entries found"),
    array("hu","whois.ripe.net","MAXCHARS:500"),
    array("id.au","whois.aunic.net","No Data Found"),
    array("ie","whois.domainregistry.ie","no match"),
    array("ind.br","whois.nic.br","No match"),
    array("imb.br","whois.nic.br","No match"),
    array("inf.br","whois.nic.br","No match"),
    array("info","whois.afilias.info","Not found"),
    array("info.au","whois.aunic.net","No Data Found"),
    array("it","whois.nic.it","No entries found"),
    array("idv.tw","whois.twnic.net","NO MATCH TIP"),
    array("int","whois.iana.org","not found"),
    array("is","whois.isnic.is","No entries found"),
    array("il","whois.isoc.org.il","No data was found"),
    array("jl.cn","whois.cnnic.net.cn","No entries found"),
    array("jor.br","whois.nic.br","No match"),
    array("jp","whois.nic.ad.jp","No match"),
    array("js.cn","whois.cnnic.net.cn","No entries found"),
    array("jx.cn","whois.cnnic.net.cn","No entries found"),
    array("kr","whois.krnic.net","is not registered"),
    array("la","whois.nic.la","NO MATCH"),
    array("lel.br","whois.nic.br","No match"),
    array("li","whois.nic.ch","We do not have an entry"),
    array("lk","whois.nic.lk","No domain registered"),
    array("ln.cn","whois.cnnic.net.cn","No entries found"),
    array("lt","ns.litnet.lt","No matches found"),
    array("lu","whois.dns.lu","No entries found"),
    array("lv","whois.ripe.net","no entries found"),
    array("ltd.uk","whois.nic.uk","No match for"),
    array("mat.br","whois.nic.br","No match"),
    array("mc","whois.ripe.net","No entries found"),
    array("med.br","whois.nic.br","No match"),
    array("mil","whois.nic.mil","No match"),
    array("mil.br","whois.nic.br","No match"),
    array("mn","whois.nic.mn","Domain not found"),
    array("mo.cn","whois.cnnic.net.cn","No entries found"),
    array("ms","whois.adamsnames.tc","is not registered"),
    array("mus.br","whois.nic.br","No match"),
    array("mx","whois.nic.mx","Nombre del Dominio"),
    array("name","whois.nic.name","No match"),
    array("ne.jp","whois.nic.ad.jp","No match"),
    array("net","whois.verisign-grs.net","No match"),
    array("net.au","whois.aunic.net","No Data Found"),
    array("net.br","whois.nic.br","No match"),
    array("net.cn","whois.cnnic.net.cn","No entries found"),
    array("net.eg","whois.ripe.net","No entries found"),
    array("net.hk","whois.hknic.net.hk","No Match for"),
    array("net.lu","whois.dns.lu","No entries found"),
    array("net.mx","whois.nic.mx","Nombre del Dominio"),
    array("net.uk","whois.nic.uk","No match for "),
    array("net.ru","whois.ripn.ru","No entries found"),
    array("net.tw","whois.twnic.net","NO MATCH TIP"),
    array("nl","whois.domain-registry.nl","is not a registered domain"),
    array("nm.cn","whois.cnnic.net.cn","No entries found"),
    array("no","whois.norid.no","no matches"),
    array("nom.br","whois.nic.br","No match"),
    array("not.br","whois.nic.br","No match"),
    array("ntr.br","whois.nic.br","No match"),
    array("nx.cn","whois.cnnic.net.cn","No entries found"),
    array("nz","whois.domainz.net.nz","Not Listed"),
    array("plc.uk","whois.nic.uk","No match for"),
    array("odo.br","whois.nic.br","No match"),
    array("oop.br","whois.nic.br","No match"),
    array("or.jp","whois.nic.ad.jp","No match"),
    array("org","whois.verisign-grs.net","No match"),
    array("org.au","whois.aunic.net","No Data Found"),
    array("org.br","whois.nic.br","No match"),
    array("org.cn","whois.cnnic.net.cn","No entries found"),
    array("org.hk","whois.hknic.net.hk","No Match for"),
    array("org.lu","whois.dns.lu","No entries found"),
    array("org.ru","whois.ripn.ru","No entries found"),
    array("org.tw","whois.twnic.net","NO MATCH TIP"),
    array("org.uk","whois.nic.uk","No match for"),
    array("pl","nazgul.nask.waw.pl","does not exists"),
    array("pp.ru","whois.ripn.ru","No entries found"),
    array("ppg.br","whois.nic.br","No match"),
    array("pro.br","whois.nic.br","No match"),
    array("psi.br","whois.nic.br","No match"),
    array("psc.br","whois.nic.br","No match"),
    array("pt","whois.ripe.net","No entries found"),
    array("qh.cn","whois.cnnic.net.cn","No entries found"),
    array("qsl.br","whois.nic.br","No match"),
    array("rec.br","whois.nic.br","No match"),
    array("ro","whois.rotld.ro","No entries found"),
    array("ru","whois.ripn.ru","No entries found"),
    array("sc.cn","whois.cnnic.net.cn","No entries found"),
    array("sd.cn","whois.cnnic.net.cn","No entries found"),
    array("se","whois.nic-se.se","No data found"),
    array("sg","whois.nic.net.sg","NO entry found"),
    array("sh","whois.nic.sh","No match for"),
    array("sh.cn","whois.cnnic.net.cn","No entries found"),
    array("si","whois.arnes.si","No entries found"),
    array("sk","whois.ripe.net","no entries found"),
    array("slg.br","whois.nic.br","No match"),
    array("sm","whois.ripe.net","no entries found"),
    array("sn.cn","whois.cnnic.net.cn","No entries found"),
    array("srv.br","whois.nic.br","No match"),
    array("st","whois.nic.st","No entries found"),
    array("sx.cn","whois.cnnic.net.cn","No entries found"),
    array("tc","whois.adamsnames.tc","is not registered"),
    array("th","whois.nic.uk","No entries found"),
    array("tj.cn","whois.cnnic.net.cn","No entries found"),
    array("tmp.br","whois.nic.br","No match"),
    array("to","whois.tonic.to","No match"),
    array("tr","whois.ripe.net","Not found in database"),
    array("trd.br","whois.nic.br","No match"),
    array("tur.br","whois.nic.br","No match"),
    array("tv","whois.tv","MAXCHARS:75"),
    array("tv.br","whois.nic.br","No match"),
    array("tw","whois.twnic.net","NO MATCH TIP"),
    array("tw.cn","whois.cnnic.net.cn","No entries found"),
    array("uk","whois.thnic.net","No match for"),
    array("va","whois.ripe.net","No entries found"),
    array("vet.br","whois.nic.br","No match"),
    array("vg","whois.adamsnames.tc","is not registered"),
    array("wattle.id.au","whois.aunic.net","No Data Found"),
    array("ws","whois.worldsite.ws","No match for"),
    array("xj.cn","whois.cnnic.net.cn","No entries found"),
    array("xz.cn","whois.cnnic.net.cn","No entries found"),
    array("yn.cn","whois.cnnic.net.cn","No entries found"),
    array("zlg.br","whois.nic.br","No match"),
    array("zj.cn","whois.cnnic.net.cn","No entries found")
  );

  // Доменное имя
  $domain "mysql.com";
  // Извлекаем домен первого уровня
  $first_dom substr($domainstrpos($domain".") + 1);
  // Получаем имя whois-сервера, который отвечает за
  // домен $first_dom
  for($i 0$i count($servers); $i++)
  {
    if($servers[$i][0] == $first_dom)
    {
      // Запоминаем имя сервера
      $whois $servers[$i][1];
      // и фразу, означающую, что домен отсутствует
      $not_found_string $servers[$i][2];
      // Покидаем цикл
      break;
    }
  }

  // Проверяем определён ли whois-сервер который несёт
  // ответственность за данный доменный уровень
  if(empty($whois)) exit("К сожалению не найден соответствующий Whois-сервер");
  // Обращаемся к whois-серверу и получаем информацию
  // о доменном имени
  $fp fsockopen($whois43);
  fputs($fp"$domain\r\n");
  $str "";
  while(!feof($fp))
  {
    $str .= fgets($fp,128);
  }
  fclose($fp);
  // если в ответе имеется фраза-отказ, домен не
  // зарегистрирован, если такой фразы нет -
  // следовательно домен зарегистрирован
  if(!preg_match("/".$not_found_string."/is"$str))
  {
    echo "Домен уже зарегистрирован";
  }
  else
  {
    echo "Домен не зарегистрирован";
  }
?>

Важно отметить, что если вы относитесь к любителям поискать не занятый домен в автоматическом режиме, следует быть крайне аккуратным - ставьте задержки между обращениями, иначе вы будете заблокированы, а разблокировка IP-адреса требует длительной переписки с администрацией сервиса.

 
  Rambler's Top100 Яндекс.Метрика Яндекс цитирования