• Команда dig - несколько примеров



    dig
    (англ. слово «копать», а формально — сокращение от «domain information groper») — утилита (DNS-клиент). Утилита dig позволяет пользователям задавать различные типы запросов и запрашивать произвольно указываемые сервера. Является аналогом утилиты nslookup.

    Утилита dig входит в стандартный комплект DNS сервера BIND.

    Простой вывод команды dig

    Когда пользователь задает имя домена в команде dig по-умолчанию, то получаете A-запись домена (ip-адрес сайта (домена) который запрашивали) как показано на примере ниже:
    Код:
    $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
    В этом примере можно увидеть A-записи домена ya.ru в разделе ANSWER SECTION

    Теперь рассмотрим разделы данного вывода подробней:
    - 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).

    Вывод только секции 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
    Запрос MX-записи
    Для запроса MX-записи домена мы используем одноименный аргумент командной строки (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.
    Этот же запрос можно выполнить с ключом -t (тип)
    Код:
    $ dig -t MX ya.ru +noall +answer
     
    ; <<>> DiG 9.7.3 <<>> -t MX ya.ru +noall +answer
    ;; global options: +cmd
    ya.ru.                  1903    IN      MX      10 mx.yandex.ru.
    Запрос NS-записи
    По аналогии с предыдущим пунктом, используем аргумент 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.
    Вы также можете использовать ключ -t для указания типа запроса
    Код:
    $ dig -t NS ya.ru +noall +answer
     
    ; <<>> DiG 9.7.3 <<>> -t NS ya.ru +noall +answer
    ;; global options: +cmd
    ya.ru.                  7088    IN      NS      ns5.yandex.ru.
    ya.ru.                  7088    IN      NS      ns1.yandex.ru.
    Просмотр всех типов DNS-записей
    Для этого используется ключ ANY
    Код:
    $ 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
    Также допустим ключ -t
    Код:
    $ dig -t ANY ya.ru  +noall +answer
     
    ; <<>> DiG 9.7.3 <<>> -t ANY ya.ru +noall +answer
    ;; global options: +cmd
    ya.ru.                  4857    IN      TXT     "v=spf1 redirect=_spf.yandex.ru"
    ya.ru.                  6889    IN      NS      ns5.yandex.ru.
    ya.ru.                  6889    IN      NS      ns1.yandex.ru.
    ya.ru.                  1459    IN      MX      10 mx.yandex.ru.
    ya.ru.                  6420    IN      A       213.180.204.3
    ya.ru.                  6420    IN      A       87.250.251.3
    ya.ru.                  6420    IN      A       93.158.134.203
    ya.ru.                  6420    IN      A       213.180.193.3
    ya.ru.                  6420    IN      A       87.250.250.203
    ya.ru.                  6420    IN      A       93.158.134.3
    ya.ru.                  6420    IN      A       87.250.250.3
    ya.ru.                  6420    IN      A       77.88.21.3
    Краткий вывод команды 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.
    Просмотр информации об обратной зоне домена (PTR)
    Для просмотра обратной зоны необходимо использовать ключ -х
    Для примера, узнать имя домена по айпи-адресу 77.88.21.3
    Код:
    $ dig -x 77.88.21.3 +short
    <a href="http://www.yandex.ru">www.yandex.ru</a>.
    Для вывода полной информации убираем ключ +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">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
    Использование конкретного DNS-сервера для выполнения запроса
    Для использования конкретного DNS-сервера используется запись вида - @dnsserver, где dnsserver это или имя или ip-адрес DNS-сервера
    Данный пример рассмотрен в первом примере.

    Объемный запрос (запрос информации сразу о нескольких доменах)
    Для запроса информации о нескольких доменах возможно использование текстовых файлов с перечислением доменов.

    Создадим файл names.txt с именами доменов:
    Код:
    $nano 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.
    Изменение параметров по умолчанию для команды dig
    Например вы хотите, чтобы утилита dig по умолчанию выводила только секцию ответа (ANSWER SECTION).
    Для этого необходимо внести в файл .digrc необходимые ключи, в нашем случае +noall +answer:
    Код:
    $nano $HOME/.digrc
    +noall +answer
    Вывод будет:
    Код:
    $ dig ya.ru
    ya.ru.                  4162    IN      A       93.158.134.203
    ya.ru.                  4162    IN      A       213.180.193.3
    ya.ru.                  4162    IN      A       87.250.250.203
    ya.ru.                  4162    IN      A       93.158.134.3
    ya.ru.                  4162    IN      A       87.250.250.3
    ya.ru.                  4162    IN      A       77.88.21.3
    ya.ru.                  4162    IN      A       213.180.204.3
    ya.ru.                  4162    IN      A       87.250.251.3
    Это всего лишь небольшая часть этой утилиты, для тех, кто хочет большего, добро пожаловать в man dig.

     

     

Информационный портал
Самый большой информационный форум Пензы, это прежде всего уникальный сервис общения на разные темы. Не стесняйтесь задавать вопросы, делитесь опытом и знаниями, обращайтесь за советами и помощью друг к другу.
Читайте нас: