Команда host

Команда host позволяет использовать одноименную утилиту для отправки запросов серверам доменных имен. При использовании host пользователь может указать имя сервера доменных имен, который должен обработать запрос, поэтому рассматриваемая утилита используется главным образом для диагностики серверов доменных имен. Кроме того, утилита может осуществлять обратное разрешение доменных имен, то есть, получать список доменных имен, связанных с заданным IP-адресом. Данная утилита схожа по функционалу с утилитой dig, но имеет более простой и понятный синтаксис.

Базовый синтаксис команды выглядит следующим образом:

$ host [параметры] имя-домена-или-ip-адрес [имя-сервера-доменных-имен]

Утилита поддерживает ряд параметров командной строки. Наиболее полезным параметром является параметр -t, позволяющий указать интересующий пользователя тип ресурсной записи.

В частности, поддерживаются следующие типы ресурсных записей:

  • A (адрес IPv4)
  • AAAA (адрес IPv6)
  • CNAME (каноническое имя или псевдоним)
  • MX (имя узла сервера электронной почты)
  • NS (имя сервера доменных имен)
  • PTR (указатель на каноническое имя, используемый для обратных разрешений доменных имен)
  • SOA (источник информации и доменной зоне)
  • TXT (произвольная текстовая запись)

По умолчанию утилита осуществляет запросы значений ресурсных записей типов A, AAAA и MX. Параметр -a позволяет осуществить запрос значений всех ресурсных записей домена. Параметр -T позволяет осуществить обращение к DNS-серверу по протоколу TCP. Параметр -R позволяет указать количество повторов отправки запросов и полезен при работе в ненадежных сетях по протоколу UDP. Параметр -W позволяет указать длительность периода ожидания ответа сервера в секундах, а параметр -w позволяет ожидать ответа сервера в течение неограниченного времени. Параметры -4 и -6 позволяют использовать протоколы IPv4 и IPv6 соответственно.

Примеры использования

Получение IP-адреса сервера по имени домена

Для получения IP-адреса сервера ресурса по имени его домена достаточно передать утилите имя домена без каких-либо параметров:

$ host linux-faq.ru

В результате будет получен следующий вывод, практически не содержащий ненужной информации по сравнению с выводом утилиты dig:

linux-faq.ru has address 185.17.121.220
linux-faq.ru mail is handled by 0 linux-faq.ru.

Несложно заметить, что сервер имеет IP-адрес 185.17.121.220. Для получения более компактного вывода может использоваться следующая команда:

$ host -t A linux-faq.ru

Теперь вывод будет содержать лишь наиболее важную информацию:

linux-faq.ru has address 185.17.121.220

Получение имен доменов почтовых серверов, связанных с доменом

Для получения имен доменов почтовых серверов, связанных с заданным доменом, можно обойтись вызовом утилиты host с именем домена без каких-либо параметров. Если же вам не нужна дополнительная информация, вы можете четко указать тип ресурсной записи MX. Для этого может использоваться параметр -t:

$ host -t MX linux-faq.ru

В результате будет получен аналогичный вывод:

linux-faq.ru mail is handled by 0 linux-faq.ru.

Получение имен серверов доменных имен, связанных с доменом

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

$ host -t NS linux-faq.ru

В результате будет получен аналогичный вывод:

linux-faq.ru name server ns1.m-hosting.ru.
linux-faq.ru name server ns2.m-hosting.ru.

Получение значений всех доступных ресурсных записей

Для получения значений всех доступных ресурсных записей, связанных с заданным доменом, нужно использовать параметр -a:

$ host -a linux-faq.ru

В результате будет получен аналогичный вывод:

Trying "linux-faq.ru"
;; ->>HEADER<<- opcode: QUERY, status: NOERROR, id: 43899
;; flags: qr rd ra; QUERY: 1, ANSWER: 5, AUTHORITY: 0, ADDITIONAL: 0

;; QUESTION SECTION:
;linux-faq.ru. IN ANY

;; ANSWER SECTION:
linux-faq.ru. 9875 IN SOA ns1.m-hoster-6.ru. wm-max2008.yandex.ru. 2018122909 3600 7200 1209600 86400
linux-faq.ru. 6859 IN MX 0 linux-faq.ru.
linux-faq.ru. 14139 IN A 185.17.121.220
linux-faq.ru. 330754 IN NS ns1.m-hosting.ru.
linux-faq.ru. 330754 IN NS ns2.m-hosting.ru.

Received 177 bytes from 127.0.0.53#53 in 65 ms

Это формат вывода утилиты dig, который наверняка многим знаком.

Обратное разрешение доменного имени

Для того, чтобы осуществить обратное разрешение доменного имени достаточно задать IP-адрес сервера:

$ host 185.17.121.220
220.121.17.185.in-addr.arpa domain name pointer server6.m-hoster-6.ru.

Использование определенного сервера доменных имен

Для использования определенного сервера доменных имен необходимо указать его имя или IP-адрес:

$ host linux-faq.ru ns1.r01.ru
Using domain server:
Name: ns1.r01.ru
Address: 89.111.160.32#53
Aliases:

linux-faq.ru has address 185.17.121.220
linux-faq.ru mail is handled by 0 linux-faq.ru.

В данном случае информация получена от DNS-сервера регистратора доменных имен R01.