Как проверить доменное имя в PHP?

Возможно ли это без использования регулярного выражения?

Например, я хочу проверить, что строка является допустимым доменом:

domain-name
abcd
example

Действующие домены. Это, конечно, недействительно:

domaia@name
ab$%cd

И так далее. Таким образом, в основном он должен начинаться с буквенно-цифрового символа, затем может быть больше буквенных символов, а также дефис. И он тоже должен заканчиваться alnum характером.

Если это невозможно, не могли бы вы предложить мне шаблон регулярного выражения для этого?

РЕДАКТИРОВАТЬ:

Почему это не работает? Я неправильно использую preg_match?

$domain = '@djkal';
$regexp = '/^[a-zA-Z0-9][a-zA-Z0-9\-\_]+[a-zA-Z0-9]$/';
if (false === preg_match($regexp, $domain)) {
    throw new Exception('Domain invalid');
}

person Richard Knop    schedule 18.11.2009    source источник
comment
зачем избегать регулярных выражений? там эффективный   -  person Andrew    schedule 18.11.2009
comment
@your edit: вы неправильно используете '===', preg_match возвращает int, а не false.   -  person Matteo Riva    schedule 18.11.2009
comment
domaia@name - допустимое доменное имя. Однако это недопустимое имя host. Смотрите мой ответ.   -  person Alnitak    schedule 23.09.2010


Ответы (19)


<?php
function is_valid_domain_name($domain_name)
{
    return (preg_match("/^([a-z\d](-*[a-z\d])*)(\.([a-z\d](-*[a-z\d])*))*$/i", $domain_name) //valid chars check
            && preg_match("/^.{1,253}$/", $domain_name) //overall length check
            && preg_match("/^[^\.]{1,63}(\.[^\.]{1,63})*$/", $domain_name)   ); //length of each label
}
?>

Тестовые примеры:

is_valid_domain_name? [a]                       Y
is_valid_domain_name? [0]                       Y
is_valid_domain_name? [a.b]                     Y
is_valid_domain_name? [localhost]               Y
is_valid_domain_name? [google.com]              Y
is_valid_domain_name? [news.google.co.uk]       Y
is_valid_domain_name? [xn--fsqu00a.xn--0zwm56d] Y
is_valid_domain_name? [goo gle.com]             N
is_valid_domain_name? [google..com]             N
is_valid_domain_name? [google.com ]             N
is_valid_domain_name? [google-.com]             N
is_valid_domain_name? [.google.com]             N
is_valid_domain_name? [<script]                 N
is_valid_domain_name? [alert(]                  N
is_valid_domain_name? [.]                       N
is_valid_domain_name? [..]                      N
is_valid_domain_name? [ ]                       N
is_valid_domain_name? [-]                       N
is_valid_domain_name? []                        N
person velcrow    schedule 14.01.2011
comment
Не забудьте проверить, если (count ($ шт.) ›1) - person 472084; 15.06.2012
comment
Более короткое одиночное регулярное выражение: ^[a-z\d](-*[a-z\d])*$. - person Kendall Hopkins; 17.07.2012
comment
Кендалл, спасибо за регулярное выражение. Кроме того, теперь число ограничено 253 из-за: blog.sacaluta.com/2011/12/ - person velcrow; 21.02.2013
comment
будьте осторожны с этим регулярным выражением. Это позволит xn---gnter--o2a.de, который переводится обратно в -günter-.de, что, очевидно, не должно быть разрешено. - person lifeofguenter; 06.03.2015
comment
/^([az\d provided(-[az\dght))(\.([az\dpting(- [az \ d]))) * $ / i на самом деле должно быть /^([az\d provided(-[az\d provided))(\.([az\d provided(- [az \ d] ))) + $ / i, иначе вы не найдете доменов, а только строки. Вам нужно изменить * на + - person tmarois; 23.06.2015
comment
Как правило, вы должны использовать одинарные кавычки для написания регулярного выражения в php, чтобы оно не обрабатывало какие-либо специальные символы внутри - person kabeersvohra; 27.07.2015
comment
Лети как бабочка! Жало как пчела! - person krisanalfa; 21.11.2015
comment
Это регулярное выражение не распространяется на домены умляутов и другие подобные специальные символы, которые являются совершенно верно ... - person nerdoc; 08.03.2016
comment
127.0.0.1.1 считается действительным доменом этой функцией. - person Bob Ortiz; 30.06.2016
comment
URL-адреса IPv4 считаются допустимыми доменами http://127.0.0.1 => 127.0.0.1, но URL-адреса IPv6, например http://[2001:db8::7], не считаются допустимыми доменами. Есть некоторая несогласованность - person damko; 27.10.2016
comment
testj11.com этот домен считается недействительным при использовании этого фильтра! Это почему ? testingj11.com testingj21.com testingj31.com testingj41.com testingj51.com testingj61.com testingj71.com testingj81.com testingj91.com testingj101.com это тоже недействительно, может кто-нибудь сказать мне, что происходит - person Amit Chauhan; 24.12.2016
comment
125 голосов за ... Эта функция отклоняет действительные домены UTF-8, принимает телефонные номера в качестве домена, отклоняет IPV6 ips, но принимает IPV4 ips, и для этого использует 3 высокопроизводительных поиска регулярных выражений. Используйте с осторожностью. - person John; 17.11.2018
comment
Домены UTF-8 и домены с умлатусом и т. Д. НЕ являются действительными доменными именами. Это домены IDN, которые всегда следует использовать с punycode! Домены Unicode должны быть преобразованы в punycode перед любой обработкой, поскольку они не являются допустимыми доменами. - person sijanec; 19.05.2019
comment
Имя домена может фактически содержать символы подчеркивания, имя хоста не может содержать подчеркивание. См. stackoverflow.com/questions/2180465/ - person Léon Melis; 19.08.2019
comment
Домен может содержать русские буквы, поэтому: ‹? Php function is_valid_domain_name ($ domain_name) {return (preg_match (/ ^ ([а-яА-Яa-z \ d] (- [а-яА-Яa-z \ d]) ) (\. ([а-яА-Яa-z \ d] (- [а-яА-Яa-z \ d]))) * $ / iu, $ domain_name) // проверка допустимых символов && preg_match (/ ^ . {1,253} $ /, $ domain_name) // проверка общей длины && preg_match (/ ^ [^ \.] {1,63} (\. [^ \.] {1,63}) * $ /, $ domain_name )); // длина каждой метки}? ›будет лучше - person mindsupport; 26.12.2019

При этом вы будете не только проверять, имеет ли домен допустимый формат, но также активен ли он / имеет ли ему назначенный IP-адрес.

$domain = "stackoverflow.com";

if(filter_var(gethostbyname($domain), FILTER_VALIDATE_IP))
{
    return TRUE;
}

Обратите внимание, что этот метод требует, чтобы записи DNS были активными, поэтому, если вам требуется, чтобы строка домена была проверена, не находясь в DNS, используйте метод регулярного выражения, указанный выше velcrow.

Также эта функция не предназначена для проверки строки URL-адреса, используйте для этого FILTER_VALIDATE_URL. Мы не используем FILTER_VALIDATE_URL для домена, потому что строка домена не является допустимым URL-адресом.

person RoboTamer    schedule 19.11.2011
comment
Только то, что я бы использовал фильтр: FILTER_VALIDATE_URL вместо FILTER_VALIDATE_IP - person Nir Alfasi; 09.10.2012
comment
FILTER_VALIDATE_URL найдет только действительные URL-адреса ASCII; интернационализированные доменные имена (содержащие символы, отличные от ASCII) завершатся ошибкой. (php.net/manual/en/filter.filters.validate.php) - person Edson Medina; 08.01.2013
comment
gethostbyname выполняет блокирующий поиск по DNS, поэтому не запускайте его для цикла по большому набору данных, у вас будет ужасное время выполнения. - person velcrow; 21.02.2013
comment
не работает для URL-адреса со строкой запроса, т.е. https://www.google.co.uk/search?q=google&gws_rd=ssl - person Templar; 01.07.2014
comment
@Templar - это функция для проверки имени хоста, а не URL-адреса - person php_nub_qq; 04.02.2015
comment
Это не сработает для действительного домена или имени хоста, которого еще нет в DNS. -1. - person Shadur; 19.04.2016
comment
это довольно узкий кругозор. представьте, что вы пытаетесь подтвердить домен, который еще не зарегистрирован. например, сделать реальную услугу регистрации доменного имени или что-то в этом роде ... - person user151496; 24.05.2016
comment
Это не проверяет домен в PHP, а просто передает проверку на уровень DNS, который затем возвращается через PHP. - person Phil; 29.09.2016

PHP 7

// Validate a domain name
var_dump(filter_var('mandrill._domainkey.mailchimp.com', FILTER_VALIDATE_DOMAIN));
# string(33) "mandrill._domainkey.mailchimp.com"

// Validate an hostname (here, the underscore is invalid)
var_dump(filter_var('mandrill._domainkey.mailchimp.com', FILTER_VALIDATE_DOMAIN, FILTER_FLAG_HOSTNAME));
# bool(false)

Здесь это не описано: http://www.php.net/filter.filters.validate и запрос об ошибке для этого находится здесь: https://bugs.php.net/bug.php?id=72013

person Rob    schedule 15.02.2018
comment
Хм, это работает, но дает несколько ложных срабатываний: `` ››› filter_var ('ripe', FILTER_VALIDATE_DOMAIN, FILTER_FLAG_HOSTNAME) = ›ripe` ` - person М.Б.; 27.06.2019
comment
@ М.Б. Это действительное доменное имя в соответствии со спецификациями RFC 1035 Они должны начинаться с буква, оканчивающаяся буквой или цифрой, а в качестве внутренних символов должны быть только буквы, цифры и дефис. Также есть некоторые ограничения по длине. Ярлыки должны содержать не более 63 символов. . Вы можете добавить дополнительные ограничения, которые должны включать точку ., чтобы сделать то, что вы хотите - person Accountant م; 03.09.2019
comment
@Accountant Хорошо, спасибо! Я думал, что . уже включен в сам валидатор. - person М.Б.; 03.09.2019
comment
@Accountant م, я думаю, что может быть RFC, который расширяет это определение, потому что у меня был домен 2tp.com, и я видел множество других доменных имен, начинающихся с цифры. - person scott8035; 12.12.2019

используйте checkdnsrr http://php.net/manual/en/function.checkdnsrr.php

$domain = "stackoverflow.com";

checkdnsrr($domain , "A");

//returns true if has a dns A record, false otherwise
person jacktrade    schedule 01.05.2012
comment
не очень полезно, если вы хотите проверить домен, который имеет допустимую структуру, но не зарегистрирован (пока). - person Ludo - Off the record; 07.04.2015
comment
не обязательно, php будет искать DNS-сервер в сети, если вы зарегистрируете домен на локальном уровне в своей сети, вы получите верный ответ от checkdnsrr - person jacktrade; 10.06.2019
comment
Значит, вы в основном предлагаете регистрировать каждый домен, который хотите сначала проверить локально? это не имеет смысла, также вы можете зарегистрировать недействительные домены локально, что превосходит цель того, что пытается достичь @ richard-knop. - person Ludo - Off the record; 18.06.2019

Во-первых, вам следует уточнить, имеете ли вы в виду:

  1. отдельные ярлыки доменных имен
  2. целые доменные имена (т. е. несколько меток, разделенных точками)
  3. имена хостов

Причина, по которой такое различие необходимо, заключается в том, что метка может технически включать любые символы, включая символы NUL, @ и '.'. DNS поддерживает 8-битную систему, и вполне возможно иметь файл зоны, содержащий запись "an\0odd\.l@bel". Это, конечно, не рекомендуется, не в последнюю очередь потому, что людям будет сложно отличить точку внутри метки от разделяющих меток, но это законно.

Однако для URL требуется имя хоста, и они регулируются RFC 952 и 1123. Допустимые имена хоста являются подмножеством доменные имена. В частности, разрешены только буквы, цифры и дефис. Кроме того, первый и последний символы не могут быть дефисом. RFC 952 не разрешал вводить номер для первого символа, но RFC 1123 впоследствии смягчил это.

Следовательно:

  • a - действительно
  • 0 - действительно
  • a- - недействительно
  • a-b - действительно
  • xn--dasdkhfsd - действительный (кодировка Punycode для IDN)

Я не думаю, что возможно сделать недействительным пример a- одним простым регулярным выражением. Лучшее, что я могу придумать для проверки одиночного хоста, - это:

if (preg_match('/^[a-z\d][a-z\d-]{0,62}$/i', $label) &&
   !preg_match('/-$/', $label))
{
    # label is legal within a hostname
}

Чтобы еще больше усложнить ситуацию, в некоторых записях доменных имен (обычно SRV записей) используются метки с префиксом подчеркивания, например _sip._udp.example.com. Это не имена хостов, а законные доменные имена.

person Alnitak    schedule 23.09.2010

Думаю, если вы выделили доменное имя, скажем, по идее Эрклана:

$myUrl = "http://www.domain.com/link.php";
$myParsedURL = parse_url($myUrl);
$myDomainName= $myParsedURL['host'];

вы можете использовать:

if( false === filter_var( $myDomainName, FILTER_VALIDATE_URL ) ) {
// failed test

}

Я подумал, что функции фильтра PHP5 предназначены именно для этой цели.

Я понимаю, что это не совсем ответ на ваш вопрос, поскольку он не использует Regex.

person Cups    schedule 18.11.2009
comment
Я не уверен, что это действительно сработает. RRF для URI (что и делает фильтр) включает такие вещи, как file: /// some / path и т.п. URL / URI не обязательно включают действительные имена хостов. - person Josh Koenig; 03.05.2011

Вот еще один способ без регулярного выражения.

$myUrl = "http://www.domain.com/link.php";
$myParsedURL = parse_url($myUrl);
$myDomainName= $myParsedURL['host'];
$ipAddress = gethostbyname($myDomainName);
if($ipAddress == $myDomainName)
{
   echo "There is no url";
}
else
{
   echo "url found";
}
person Erkan BALABAN    schedule 18.11.2009
comment
удалите один знак равенства, он должен выглядеть так: $ ipAddress == $ myDomainName - person RoboTamer; 18.11.2011
comment
parse_url('www.domain.com') приводит к массиву результатов с ключом path вместо host - person eXe; 20.03.2020

Регулярное выражение - самый эффективный способ проверки правильности домена. Если вы твердо настроены не использовать регулярное выражение (что IMO глупо), вы можете разделить каждую часть домена:

  • www. / поддомен
  • доменное имя
  • .расширение

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

Как я уже сказал, гораздо эффективнее использовать регулярное выражение.

person James Brooks    schedule 18.11.2009
comment
Конечно, регулярное выражение - не самый эффективный способ проверки правильности домена. Лучше перебирать char по char или что-то в этом роде. - person nacholibre; 06.10.2016

Ваше регулярное выражение в порядке, но вы неправильно используете preg_match. Он возвращает int (0 или 1), а не логическое значение. Просто напишите if(!preg_match($regex, $string)) { ... }

person Arthur Reutenauer    schedule 18.11.2009

Если вы не хотите использовать регулярные выражения, вы можете попробовать следующее:

$str = 'domain-name';

if (ctype_alnum(str_replace('-', '', $str)) && $str[0] != '-' && $str[strlen($str) - 1] != '-') {
    echo "Valid domain\n";
} else {
    echo "Invalid domain\n";
}

но, как сказано, регулярное выражение - лучший инструмент для этого.

person Matteo Riva    schedule 18.11.2009

Если вы хотите проверить, существует ли конкретное доменное имя или IP-адрес или нет, вы также можете использовать checkdnsrr
Вот документ http://php.net/manual/en/function.checkdnsrr.php

person verdy    schedule 17.10.2012

Для меня действительный домен - это то, что я могу зарегистрировать или, по крайней мере, похоже, что я могу его зарегистрировать. Это причина, по которой я предпочитаю отделить это от имен "localhost".

И, наконец, меня заинтересовал главный вопрос, будет ли избегать Regex быстрее, и это мой результат:

<?php
function filter_hostname($name, $domain_only=false) {
    // entire hostname has a maximum of 253 ASCII characters
    if (!($len = strlen($name)) || $len > 253
    // .example.org and localhost- are not allowed
    || $name[0] == '.' || $name[0] == '-' || $name[ $len - 1 ] == '.' || $name[ $len - 1 ] == '-'
    // a.de is the shortest possible domain name and needs one dot
    || ($domain_only && ($len < 4 || strpos($name, '.') === false))
    // several combinations are not allowed
    || strpos($name, '..') !== false
    || strpos($name, '.-') !== false
    || strpos($name, '-.') !== false
    // only letters, numbers, dot and hypen are allowed
/*
    // a little bit slower
    || !ctype_alnum(str_replace(array('-', '.'), '', $name))
*/
    || preg_match('/[^a-z\d.-]/i', $name)
    ) {
        return false;
    }
    // each label may contain up to 63 characters
    $offset = 0;
    while (($pos = strpos($name, '.', $offset)) !== false) {
        if ($pos - $offset > 63) {
            return false;
        }
        $offset = $pos + 1;
    }
    return $name;
}
?>

Результаты тестирования по сравнению с функцией velcrow и 10000 итераций (полные результаты содержит множество вариантов кода. Было интересно найти самый быстрый.):

filter_hostname($domain);// $domains: 0.43556308746338 $real_world: 0.33749794960022
is_valid_domain_name($domain);// $domains: 0.81832790374756 $real_world: 0.32248711585999

$real_world не содержал слишком длинных доменных имен для получения лучших результатов. И теперь я могу ответить на ваш вопрос: с использованием ctype_alnum() можно было бы реализовать это без регулярного выражения, но поскольку preg_match() был быстрее, я бы предпочел это.

Если вам не нравится тот факт, что "local.host" является допустимым доменным именем, используйте эту функцию вместо публичный список TLD. Может, у кого-то найдется время совместить и то, и другое.

person mgutt    schedule 04.03.2015

Правильный ответ заключается в том, что вы не ... вы позволяете модульному инструменту выполнять работу за вас:

// return '' if host invalid --
private function setHostname($host = '')
{
    $ret = (!empty($host)) ? $host : '';
    if(filter_var('http://'.$ret.'/', FILTER_VALIDATE_URL) === false) {
        $ret = '';
    }
    return $ret;
}

дополнительное чтение: https://www.w3schools.com/php/filter_validate_url.asp

person Mike Q    schedule 22.03.2018
comment
Могут потребоваться дополнительные проверки, поскольку IP-адрес может это пройти. - person ion; 18.05.2020

Я знаю, что это старый вопрос, но это был первый ответ в поиске Google, поэтому он кажется актуальным. У меня недавно была такая же проблема. В моем случае решением было просто использовать список общедоступных суффиксов:

https://publicsuffix.org/learn/

Все перечисленные предлагаемые библиотеки для конкретных языков должны обеспечивать простую проверку не только формата домена, но и допустимости домена верхнего уровня.

person jeffers102    schedule 12.12.2017

Если вы можете запускать команды оболочки, следуйте инструкциям ниже, чтобы определить, зарегистрирован ли домен.

Эта функция возвращает false, если доменное имя не зарегистрировано, иначе возвращает доменное имя.

function get_domain_name($domain) { 
    //Step 1 - Return false if any shell sensitive chars or space/tab were found
    if(escapeshellcmd($domain)!=$domain || count(explode(".", $domain))<2 || preg_match("/[\s\t]/", $domain)) {
            return false;
    }

    //Step 2 - Get the root domain in-case of subdomain
    $domain = (count(explode(".", $domain))>2 ? strtolower(explode(".", $domain)[count(explode(".", $domain))-2].".".explode(".", $domain)[count(explode(".", $domain))-1]) : strtolower($domain));

    //Step 3 - Run shell command 'dig' to get SOA servers for the domain extension
    $ns = shell_exec(escapeshellcmd("dig +short SOA ".escapeshellarg(explode(".", $domain)[count(explode(".", $domain))-1]))); 

    //Step 4 - Return false if invalid extension (returns NULL), or take the first server address out of output
    if($ns===NULL) {
            return false;
    }
    $ns = (((preg_split('/\s+/', $ns)[0])[strlen(preg_split('/\s+/', $ns)[0])-1]==".") ? substr(preg_split('/\s+/', $ns)[0], 0, strlen(preg_split('/\s+/', $ns)[0])-1) : preg_split('/\s+/', $ns)[0]);

    //Step 5 - Run another dig using the obtained address for our domain, and return false if returned NULL else return the domain name. This assumes an authoritative NS is assigned when a domain is registered, can be improved to filter more accurately.
    $ans = shell_exec(escapeshellcmd("dig +noall +authority ".escapeshellarg("@".$ns)." ".escapeshellarg($domain))); 
    return (($ans===NULL) ? false : ((strpos($ans, $ns)>-1) ? false : $domain));
}

Плюсы

  1. Работает на любом домене, в то время как функции php dns могут не работать на некоторых доменах. (мой домен .pro не удалось на php dns)
  2. Работает на свежих доменах без каких-либо DNS (например, A) записей
  3. Unicode дружественный

Минусы

  1. Использование оболочки, возможно,
person Ajay Singh    schedule 13.05.2019

Прочитав все вопросы о добавленных функциях, я решил, что мне нужно что-то более точное. Вот то, что я придумал, и это работает для меня.

Если вам нужно специально проверить имена хостов (они должны начинаться и заканчиваться буквенно-цифровыми символами и содержать только буквенно-цифровые символы и дефисы), этой функции должно быть достаточно.

function is_valid_domain($domain) {
    // Check for starting and ending hyphen(s)
    if(preg_match('/-./', $domain) || substr($domain, 1) == '-') {
        return false;
    }

    // Detect and convert international UTF-8 domain names to IDNA ASCII form
    if(mb_detect_encoding($domain) != "ASCII") {
        $idn_dom = idn_to_ascii($domain);
    } else {
        $idn_dom = $domain;
    }

    // Validate
    if(filter_var($idn_dom, FILTER_VALIDATE_DOMAIN, FILTER_FLAG_HOSTNAME) != false) {
        return true;
    }
    return false;
}

Обратите внимание, что эта функция будет работать на большинстве (не все языки протестированы) языках LTR. Это не будет работать на языках RTL.

is_valid_domain('a');                                                                       Y
is_valid_domain('a.b');                                                                     Y
is_valid_domain('localhost');                                                               Y
is_valid_domain('google.com');                                                              Y
is_valid_domain('news.google.co.uk');                                                       Y
is_valid_domain('xn--fsqu00a.xn--0zwm56d');                                                 Y
is_valid_domain('area51.com');                                                              Y
is_valid_domain('japanese.コム');                                                           Y
is_valid_domain('домейн.бг');                                                               Y
is_valid_domain('goo gle.com');                                                             N
is_valid_domain('google..com');                                                             N
is_valid_domain('google-.com');                                                             N
is_valid_domain('.google.com');                                                             N
is_valid_domain('<script');                                                                 N
is_valid_domain('alert(');                                                                  N
is_valid_domain('.');                                                                       N
is_valid_domain('..');                                                                      N
is_valid_domain(' ');                                                                       N
is_valid_domain('-');                                                                       N
is_valid_domain('');                                                                        N
is_valid_domain('-günter-.de');                                                             N
is_valid_domain('-günter.de');                                                              N
is_valid_domain('günter-.de');                                                              N
is_valid_domain('sadyasgduysgduysdgyuasdgusydgsyudgsuydgusydgsyudgsuydusdsdsdsaad.com');    N
is_valid_domain('2001:db8::7');                                                             N
is_valid_domain('876-555-4321');                                                            N
is_valid_domain('1-876-555-4321');                                                          N
person GTodorov    schedule 05.12.2019

Проверьте функцию php checkdnsrr

function validate_email($email){

   $exp = "^[a-z\'0-9]+([._-][a-z\'0-9]+)*@([a-z0-9]+([._-][a-z0-9]+))+$";

   if(eregi($exp,$email)){

      if(checkdnsrr(array_pop(explode("@",$email)),"MX")){
        return true;
      }else{
        return false;
      }

   }else{

      return false;

   }   
}
person codeCraft    schedule 28.06.2013

Это проверка доменного имени в javascript:

<script>
function frmValidate() {
 var val=document.frmDomin.name.value;
 if (/^[a-zA-Z0-9][a-zA-Z0-9-]{1,61}[a-zA-Z0-9](?:\.[a-zA-Z]{2,})+$/.test(val)){
      alert("Valid Domain Name");
      return true;
 } else {
      alert("Enter Valid Domain Name");
      val.name.focus();
      return false;
 }
}
</script>
person KS Rajput    schedule 05.01.2015

Это просто. У некоторых php egnine есть проблема с split (). Этот код ниже будет работать.

<?php
$email = "[email protected]"; 
$domain = strtok($email, "@");
$domain = strtok("@");
if (@getmxrr($domain,$mxrecords)) 
   echo "This ". $domain." EXIST!"; 
else 
   echo "This ". $domain." does not exist!"; 
?>

person bong    schedule 23.09.2010