forever alone
Доп. информация
Регистрация: 02.07.2010
Сообщений: 618
Поблагодарил(а): 452
Поблагодарили: 250 / 161
Скрипт, определяющий занят домен или нет
На многих сайтах хост-провайдеров можно часто увидеть сервис, который позволяет осуществить проверку домена - занят он или нет. Приведённый ниже скрипт раскрывает детали такой проверки.
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 ( $domain , strpos ( $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 ( $whois , 43 );
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-адреса требует длительной переписки с администрацией сервиса.