Перейти к содержимому

Функция PHP checkdnsrr(): Всё, что вам нужно знать

Как PHP-разработчик, вы можете столкнуться с необходимостью проверки доменных имен или поиска конкретных DNS-записей. Функция checkdnsrr() — это встроенная функция PHP, предназначенная именно для этой цели. Она проверяет наличие DNS-записи определенного типа для заданного доменного имени и возвращает true, если запись существует, или false в противном случае.

⚠️ Важно: Функция checkdnsrr() устарела в PHP 8.2 и удалена в PHP 8.4. Для современных PHP-приложений используйте вместо неё dns_get_record(). Данная статья описывает checkdnsrr() для поддержки устаревшего кода и в образовательных целях.

В этой статье мы подробно рассмотрим функцию checkdnsrr() и способы её использования.

Что такое функция checkdnsrr()?

Функция checkdnsrr() — это встроенная функция PHP, позволяющая проверять DNS-записи доменного имени. Она определяет, существует ли DNS-запись определенного типа для указанного доменного имени. Функция возвращает логическое значение: true, если запись существует, и false в противном случае.

Как использовать функцию checkdnsrr()

Использование функции checkdnsrr() довольно просто. Ниже приведён её синтаксис:

Синтаксис функции checkdnsrr()

php
checkdnsrr($host, $type);

Функция принимает два параметра:

  • $host: Доменное имя, которое необходимо проверить.
  • $type: Тип DNS-записи, которую нужно проверить. Этот параметр необязателен; по умолчанию используется значение "MX", если он не указан.

Ниже приведен пример использования функции checkdnsrr() для проверки DNS-записей доменного имени:

Как использовать функцию PHP checkdnsrr()?

php
<?php

$domain = "example.com";
if (checkdnsrr($domain)) {
    echo "DNS record exists for $domain";
} else {
    echo "DNS record does not exist for $domain";
}

В этом примере мы проверяем наличие DNS-записи для домена "example.com". Функция возвращает true, если запись существует, и false в противном случае. Обратите внимание, что DNS-запросы могут завершиться ошибкой из-за проблем с сетью, тайм-аутов или некорректных имен хостов. В продакшене рекомендуется оборачивать вызов в подавление ошибок (@checkdnsrr()) или использовать dns_get_record() для надежной обработки ошибок.

Типы DNS-записей

Функция checkdnsrr() может проверять различные типы DNS-записей. Параметр $type указывает тип записи, которую необходимо проверить. Ниже приведены некоторые из наиболее распространенных типов DNS-записей:

  • A: Возвращает IPv4-адрес доменного имени.
  • AAAA: Возвращает IPv6-адрес доменного имени.
  • MX: Возвращает почтовый сервер (MX) для доменного имени.
  • NS: Возвращает сервер имен (NS) для доменного имени.
  • CNAME: Возвращает каноническое имя для алиаса.

Заключение

Функция checkdnsrr() — это полезный инструмент для проверки доменных имен и подтверждения их существования. Понимая синтаксис и принципы работы функции, вы сможете легко проверять различные типы DNS-записей для любого домена. Надеемся, эта статья оказалась полезной и помогла вам лучше разобраться в функции checkdnsrr() в PHP.

Практика

Что делает функция checkdnsrr() в PHP?

Считаете ли это полезным?

Предпросмотр dual-run — сравните с маршрутами Symfony на продакшене.