dig (англ. слово «копать», а формально — сокращение от «domain information groper») — утилита (DNS-клиент), предоставляющая пользователю интерфейс командной строки для обращения к системе DNS. Позволяет задавать различные типы запросов и запрашивать произвольно указываемые сервера. Является аналогом утилиты nslookup.
Утилита dig входит в стандартный комплект DNS сервера BIND.
1. Простой вывод команды dig
$dig ya.ru
; <<>> DiG 9.7.3 <<>> ya.ru
;; global options: +cmd
;; Got answer:
;; ->>HEADER<<- opcode: QUERY, status: NOERROR, id: 31244
;; flags: qr rd ra; QUERY: 1, ANSWER: 8, AUTHORITY: 0, ADDITIONAL: 0
;; QUESTION SECTION:
;ya.ru. IN A
;; ANSWER SECTION:
ya.ru. 2187 IN A 87.250.251.3
ya.ru. 2187 IN A 77.88.21.3
ya.ru. 2187 IN A 213.180.204.3
ya.ru. 2187 IN A 93.158.134.3
ya.ru. 2187 IN A 213.180.193.3
ya.ru. 2187 IN A 87.250.250.203
ya.ru. 2187 IN A 93.158.134.203
ya.ru. 2187 IN A 87.250.250.3
;; Query time: 2 msec
;; SERVER: 10.218.138.252#53(10.218.138.252)
;; WHEN: Fri Mar 23 15:21:18 2012
;; MSG SIZE rcvd: 151
- HEADER (заголовок): показывает версию dig, глобальные опции используемые с командой и другую дополнительную информацию
- QUESTION SECTION (секция запроса): Показывает наш запрос, то бишь мы запросили показать A-запись (команда dig без параметров) для домена ya.ru
- ANSWER SECTION (секция ответа): Показывает ответ полученный от DNS, в нашем случае показывает A-запись для ya.ru
Последняя секция это статистика по запросу (служебная информация) - время выполнения запроса, имя DNS-сервера который запрашивался, когда был создан запрос и размер сообщения
Так же можно выполнить опрос конкретного DNS-сервера:
$dig @ns1.yandex.ru ya.ru
; <<>> DiG 9.7.3 <<>> @ns1.yandex.ru ya.ru
; (1 server found)
;; global options: +cmd
;; Got answer:
;; ->>HEADER<<- opcode: QUERY, status: NOERROR, id: 56730
;; flags: qr aa rd; QUERY: 1, ANSWER: 8, AUTHORITY: 2, ADDITIONAL: 3
;; WARNING: recursion requested but not available
;; QUESTION SECTION:
;ya.ru. IN A
;; ANSWER SECTION:
ya.ru. 7200 IN A 77.88.21.3
ya.ru. 7200 IN A 87.250.250.3
ya.ru. 7200 IN A 87.250.250.203
ya.ru. 7200 IN A 87.250.251.3
ya.ru. 7200 IN A 93.158.134.3
ya.ru. 7200 IN A 93.158.134.203
ya.ru. 7200 IN A 213.180.193.3
ya.ru. 7200 IN A 213.180.204.3
;; AUTHORITY SECTION:
ya.ru. 7200 IN NS ns1.yandex.ru.
ya.ru. 7200 IN NS ns5.yandex.ru.
;; ADDITIONAL SECTION:
ns1.yandex.ru. 345600 IN A 213.180.193.1
ns1.yandex.ru. 3600 IN AAAA 2a02:6b8::1
ns5.yandex.ru. 345600 IN A 213.180.204.1
;; Query time: 13 msec
;; SERVER: 213.180.193.1#53(213.180.193.1)
;; WHEN: Fri Mar 23 14:41:37 2012
;; MSG SIZE rcvd: 254
Результат вывода дополняется еще двумя секциями:
AUTHORITY SECTION: Показывает имена DNS-серверов обработавших наш запрос
ADDITIONAL SECTION: Показывает ip-адреса этих DNS-серверов (из секции AUTHORITY SECTION)
2. Вывод только секции ANSWER SECTION
В большинстве случаев требуется только ip адрес домена, то есть вывод секции "ANSWER SECTION"
Кключи:
-+nocomments - отключает линию комментариев
-+noauthority - отключает секцию "AUTHORITY SECTION"
-+noadditional – отключает секцию "ADDITIONAL SECTION"
-+nostats – отключает секцию статистики
-+noanswer – выключает секцию ответа (ANSWER SECTION)
$ dig ya.ru +nocomments +noquestion +noauthority +noadditional +nostats
; <<>> DiG 9.7.3 <<>> ya.ru +nocomments +noquestion +noauthority +noadditional +nostats
;; global options: +cmd
ya.ru. 114 IN A 77.88.21.3
ya.ru. 114 IN A 213.180.204.3
ya.ru. 114 IN A 93.158.134.3
ya.ru. 114 IN A 213.180.193.3
ya.ru. 114 IN A 87.250.250.203
ya.ru. 114 IN A 93.158.134.203
ya.ru. 114 IN A 87.250.250.3
ya.ru. 114 IN A 87.250.251.3
Ключ +noall выключает все секции. Таким образом мы используем ключ +noall и добавляем ключ +answer, уменьшая длину команды:
$ dig ya.ru +noall +answer
; <<>> DiG 9.7.3 <<>> ya.ru +noall +answer
;; global options: +cmd
ya.ru. 7152 IN A 213.180.193.3
ya.ru. 7152 IN A 87.250.250.203
ya.ru. 7152 IN A 93.158.134.3
ya.ru. 7152 IN A 87.250.250.3
ya.ru. 7152 IN A 77.88.21.3
ya.ru. 7152 IN A 213.180.204.3
ya.ru. 7152 IN A 87.250.251.3
ya.ru. 7152 IN A 93.158.134.203
3. Запрос MX-записи
$ dig ya.ru MX +noall +answer
; <<>> DiG 9.7.3 <<>> ya.ru MX +noall +answer
;; global options: +cmd
ya.ru. 1979 IN MX 10 mx.yandex.ru.
4. Запрос NS-записи
$ dig ya.ru NS +noall +answer
; <<>> DiG 9.7.3 <<>> ya.ru NS +noall +answer
;; global options: +cmd
ya.ru. 7170 IN NS ns5.yandex.ru.
ya.ru. 7170 IN NS ns1.yandex.ru.
5. Просмотр всех типов DNS-записей
$ dig ya.ru ANY +noall +answer
; <<>> DiG 9.7.3 <<>> ya.ru ANY +noall +answer
;; global options: +cmd
ya.ru. 4931 IN TXT "v=spf1 redirect=_spf.yandex.ru"
ya.ru. 6963 IN NS ns1.yandex.ru.
ya.ru. 6963 IN NS ns5.yandex.ru.
ya.ru. 1533 IN MX 10 mx.yandex.ru.
ya.ru. 6494 IN A 93.158.134.203
ya.ru. 6494 IN A 213.180.193.3
ya.ru. 6494 IN A 87.250.250.203
ya.ru. 6494 IN A 93.158.134.3
ya.ru. 6494 IN A 87.250.250.3
ya.ru. 6494 IN A 77.88.21.3
ya.ru. 6494 IN A 213.180.204.3
ya.ru. 6494 IN A 87.250.251.3
6. Краткий вывод команды dig
Чтобы просмотреть только ip-адрес, без лишней информации, используем опцию +short
$ dig ya.ru +short
213.180.193.3
93.158.134.203
87.250.250.203
77.88.21.3
213.180.204.3
87.250.250.3
93.158.134.3
87.250.251.3
Также можно вывести информацию по любому виду информации с ключем +short
$ dig ya.ru ns +short
ns5.yandex.ru.
ns1.yandex.ru.
7. Просмотр информации об обратной зоне домена (PTR)
Для просмотра обратной зоны необходимо использовать ключ -х
$ dig -x 77.88.21.3 +short
www.yandex.ru.
Для вывода полной информации убираем ключ +short
$dig -x 77.88.21.3
; <<>> DiG 9.7.3 <<>> -x 77.88.21.3
;; global options: +cmd
;; Got answer:
;; ->>HEADER<<- opcode: QUERY, status: NOERROR, id: 885
;; flags: qr rd ra; QUERY: 1, ANSWER: 1, AUTHORITY: 0, ADDITIONAL: 0
;; QUESTION SECTION:
;3.21.88.77.in-addr.arpa. IN PTR
;; ANSWER SECTION:
3.21.88.77.in-addr.arpa. 11007 IN PTR <a href="http://www.yandex.ru" title="www.yandex.ru">www.yandex.ru</a>.
;; Query time: 2 msec
;; SERVER: 10.218.138.252#53(10.218.138.252)
;; WHEN: Fri Mar 23 16:21:23 2012
;; MSG SIZE rcvd: 68
8. Использование конкретного DNS-сервера для выполнения запроса
Для использования конкретного DNS-сервераиспользуется запись вида - @dnsserver, где dnsserver это или имя или ip-адрес DNS-сервера
9. Объемный запрос (запрос информации сразу о нескольких доменах)
Для запроса информации о нескольких доменах возможно использование текстовых файлов с перечислением доменов.
Создадим файл names.txt с именами доменов:
$vi names.txt
ya.ru
google.ru
Далее ключ -f для чтения из файла:
$ dig -f names.txt +noall +answer
ya.ru. 5241 IN A 87.250.251.3
ya.ru. 5241 IN A 93.158.134.203
ya.ru. 5241 IN A 213.180.193.3
ya.ru. 5241 IN A 87.250.250.203
ya.ru. 5241 IN A 93.158.134.3
ya.ru. 5241 IN A 87.250.250.3
ya.ru. 5241 IN A 77.88.21.3
ya.ru. 5241 IN A 213.180.204.3
google.ru. 231 IN A 74.125.232.55
google.ru. 231 IN A 74.125.232.56
google.ru. 231 IN A 74.125.232.63
Также можно комбинировать тип DNS записи c опцией -f:
$dig -f names.txt MX +noall +answer
ya.ru. 184 IN MX 10 mx.yandex.ru.
google.ru. 10800 IN MX 10 google.com.s9b1.psmtp.com.
google.ru. 10800 IN MX 10 google.com.s9a2.psmtp.com.
google.ru. 10800 IN MX 10 google.com.s9b2.psmtp.com.
google.ru. 10800 IN MX 10 google.com.s9a1.psmtp.com.
Также возможно перечисление доменов непосредственно в командной строке. Для примера MX-запись для домена ya.ru и NS-запись для домена google.ru:
dig ya.ru mx +noall +answer google.ru ns +noall +answer
; <<>> DiG 9.7.3 <<>> ya.ru mx +noall +answer google.ru ns +noall +answer
;; global options: +cmd
ya.ru. 7143 IN MX 10 mx.yandex.ru.
google.ru. 66518 IN NS ns4.google.com.
google.ru. 66518 IN NS ns3.google.com.
google.ru. 66518 IN NS ns1.google.com.
google.ru. 66518 IN NS ns2.google.com.
Обновлено 05.04.2016 08:32