<?php
//alias.php
$hostName="monikeirwrox. com";
if (checkdnsrr($hostName, "CNAME")) {
echo("The host JhostName has an alias name.<br>\n");
} else {
echoC'The host $hostName does not have an alias name.<br>\n");
?>
Если moniker.wrox.com существует, сценарий сообщает, есть ли у него псевдоним, скажем, nickname.wrox.com.
Функция checkdnsr ) не поддерживается на платформах Microsoft Windows. getmxrr()
int getmxrr(string hostname, array [, array weight])
Когда почтовому клиенту или программе ретрансляции почты требуется послать сообщения по адресу, заданному как mailto:user@somedomain.com"> user@somedomain.com, они должны сначала узнать хост почтового ретранслятора для somedomain.com, а затем разрешить его IP-адрес. Получив этот IP-адрес, они могут открыть соединение с хостом, что позволяет доставить почту. В домене может быть несколько почтовых ретрансляторов с разными значениями предпочтения. Получив список почтовых ретрансляторов, клиент пытается установить соединение с тем из них, который имеет наивысший приоритет, а если это не удастся, то устанавливается связь со следующим в порядке убывания приоритета почтовым ретранслятором и т. д.
Функция принимает имя хоста в соответствующем домене и запол
няет массив, переданный ей в качестве второго аргумента, списком почтовых ретрансляторов в этом домене. Если задан третий аргумент, функция заполняет его как массив значений предпочтения, соответствующих возвращаемым ей почтовым ретранслятором. Обнаружив одну или более записей MX, функция возвращает true, а если такие записи не найдены или возникла ошибка, то возвращает false. На платформах Microsoft Windows эта функция может не работать:
<?php
//mailserverS.php
$dontain = "somedomain.com";
getmxrr($domain, SmailXchangers, Sprefs);
echo("List of mail exchangers for $domain: <br>\n"); for ($i = 0; $i < count($mailXchangers); ++$i) { echo("$mailXchangers[$i] = $prefs[$i] <br>\n");
} ?>
Этот сценарий выводит список почтовых ретрансляторов для домена somedo- main.com вместе с их значениями предпочтения.
Библиотека клиента DNS
В этом разделе мы разработаем простую библиотеку клиента DNS (resolver), реализованную в виде класса, прибегнув к некоторым наиболее часто применяемым функциям РНР для DNS.
Большинство клиентов DNS кэшируют ответы на запросы DNS с целью повышения производительности, что также приводит к не столь заметному эффекту в виде снижения загрузки каналов связи. Это зависит от платформы, вот почему мы реализуем в нашем классе простой механизм кэшироваия, чтобы повысить его эффективность.