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

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

Как разработчик на PHP, вам может потребоваться проверить DNS-записи или убедиться в существовании конкретной записи для домена. Исторически для этих целей использовалась функция dns_check_record(). Однако обратите внимание, что dns_check_record() была устаревшей (deprecated) в PHP 7.3 и полностью удалена в PHP 8.0. В этом руководстве объясняется её устаревшее использование и предлагается современная альтернатива dns_get_record(), которая рекомендуется для всех текущих проектов на PHP.

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

Функция dns_check_record() была встроенной функцией PHP, позволяющей проверить, существует ли DNS-запись определенного типа для заданного имени домена. Она возвращала логическое значение: true, если запись существовала, и false в противном случае. В связи с её удалением в PHP 8.0, она доступна только на устаревших системах (PHP 7.2 и более ранних версий).

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

Использование устаревшей функции dns_check_record() было простым. Вот её синтаксис:

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

php
dns_check_record($host, $type);

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

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

Поскольку dns_check_record() больше не поддерживается в современных версиях PHP, вместо неё используйте dns_get_record(). Вот как проверить наличие конкретного типа DNS-записи:

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

php
<?php

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

В этом примере мы проверяем, существует ли A-запись для домена "example.com". Функция возвращает массив записей, если они найдены, или false в противном случае.

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

Обе функции, dns_check_record() и dns_get_record(), могут проверять различные типы DNS-записей. Параметр $type указывает тип DNS-записи, которую вы хотите проверить. Вот некоторые из наиболее распространенных типов DNS-записей:

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

Заключение

Хотя dns_check_record() когда-то была стандартным инструментом для проверки DNS-записей, она была удалена из современных версий PHP. Используя современную альтернативу dns_get_record(), вы можете надежно проверять различные типы DNS-записей для любого домена. Мы надеемся, что это руководство проясняет работу устаревшей функции и предлагает практическое решение для текущей разработки на PHP.

Практика

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

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

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