dig +short

Вопрос или проблема

Я хочу, чтобы dig показывал только ответ на мой запрос.

Обычно он выводит много дополнительной информации, такой как эта:

;; <<>> DiG 9.7.3 <<>> google.de
;; global options: +cmd
;; Got answer:
;; ->>HEADER<<- opcode: QUERY, status: NOERROR, id: 55839
;; flags: qr rd ra; QUERY: 1, ANSWER: 1, AUTHORITY: 0, ADDITIONAL: 0

;; QUESTION SECTION:
;google.de.                     IN      A

;; ANSWER SECTION:
google.de.              208     IN      A       173.194.69.94

;; Query time: 0 msec
;; SERVER: 213.133.99.99#53(213.133.99.99)
;; WHEN: Sun Sep 23 10:02:34 2012
;; MSG SIZE  rcvd: 43

Я хочу, чтобы это было сокращено только до секции ответа.

У dig много опций, хорошая, которую я нашел, это +noall +answer

; <<>> DiG 9.7.3 <<>> google.de +noall +answer
;; global options: +cmd
google.de.              145     IN      A       173.194.69.94

Он исключает большинство вещей, но все же показывает эту опцию.

Есть идеи, как удалить это с помощью опций dig? Конечно, я мог бы вырезать это, используя другие инструменты, но опция с самим dig была бы наиболее чистой и приятной.

Я не уверен, почему вы получаете комментарии в выводе. Это правильный набор опций для желаемого поведения. Вот те же опции с той же версией dig:

$ dig -version
DiG 9.7.3
$ dig +noall +answer google.de
google.de.      55  IN  A   173.194.44.216
google.de.      55  IN  A   173.194.44.223
google.de.      55  IN  A   173.194.44.215
$

Используйте опцию “+short”

[root@myhost ~]# dig +short google.com
216.58.194.142

[root@myhost ~]# dig +short -x 216.58.194.142
dfw06s49-in-f14.1e100.net.
dfw06s49-in-f142.1e100.net.

[root@myhost ~]# dig +short google.com soa
ns1.google.com. dns-admin.google.com. 181803313 900 900 1800 60

Используйте dig +param domain, а не dig domain +param.

% dig +noall +answer -t aaaa d.ns.zerigo.net
d.ns.zerigo.net.        37788   IN      AAAA    2607:fc88:1001:1::4
% dig -t aaaa d.ns.zerigo.net +noall +answer

; <<>> DiG 9.9.2-P2 <<>> -t aaaa d.ns.zerigo.net +noall +answer
;; global options: +cmd
d.ns.zerigo.net.        37797   IN      AAAA    2607:fc88:1001:1::4

+noall +answer работает по-разному в зависимости от его позиции в командной строке. Это наверняка баг в dig, поскольку +short работает корректно с обеих сторон.

% dig +short -t aaaa d.ns.zerigo.net
2607:fc88:1001:1::4

% dig -t aaaa d.ns.zerigo.net +short
2607:fc88:1001:1::4

Согласно руководству, вы можете попробовать:

dig google.de +noall +answer +nocomments

Если это не сработает, то я бы спросил, какое у вас дистрибутив?

Редактировать: Это самая странная вещь. Вы должны ставить опции перед запросом.

[jglenn@lin02 ~]$ dig +noall +answer google.de
google.de.              35      IN      A       74.125.227.119
google.de.              35      IN      A       74.125.227.120
google.de.              35      IN      A       74.125.227.127
[jglenn@lin02 ~]$ dig +answer google.de +noall

; <<>> DiG 9.8.2rc1-RedHat-9.8.2-0.10.rc1.el6_3.3 <<>> +answer google.de +noall
;; global options: +cmd
[jglenn@lin02 ~]$ dig google.de +noall +answer

; <<>> DiG 9.8.2rc1-RedHat-9.8.2-0.10.rc1.el6_3.3 <<>> google.de +noall +answer
;; global options: +cmd
google.de.              203     IN      A       74.125.227.119
google.de.              203     IN      A       74.125.227.120
google.de.              203     IN      A       74.125.227.127

Проблема не в позиции, а в порядке параметров. Параметр +noall отключает все, а затем +answer включает только ответ.

$ dig +noall +answer google.de
google.de.      281 IN  A   142.251.37.99

В обратном порядке, сначала +answer включает вывод ответа (который включен по умолчанию), а последующий параметр +noall отключает все (включая ответ). Поэтому ничего не выводится в примерах dig +answer google.de +noall или dig +answer +noall google.de

$ dig +answer google.de +noall
$ dig +answer +noall google.de

Ответ или решение

Если вы хотите, чтобы команда dig выводила только ответный раздел вашего запроса, то понимание доступных параметров и их использования крайне важно. В большинстве случаев при вызове dig команда выводит много вспомогательной информации, которая может быть избыточной, если вам интересен только ответ. Рассмотрим, как правильно использовать параметры команды dig для достижения этой цели.

Теория

Команда dig, являясь мощным инструментом для диагностики DNS, предоставляет много информации по запросу. Стандартный вывод dig включает разделы с информацией о заголовках, вопросах, ответах, дополнительных сведениях и времени выполнения запроса. Если вам нужна только часть этого вывода, важно грамотно настроить параметры команды.

Одним из основных параметров для сокращения вывода является +noall, который отключает всю информацию кроме указанной вами. Например, параметр +answer вновь включает только отображение секции с ответом, которую мы и хотим увидеть. Однако, важно понимать порядок этих параметров, так как они выполняются последовательно.

Пример

Рассмотрим стандартное использование команды dig без дополнительных параметров:

$ dig google.de

Этот вызов выдаст обширную информацию с различными секциями. Если мы хотим получить только ответ, нужно использовать следующие параметры:

$ dig +noall +answer google.de

Этот вызов включает два важных параметра: +noall, который отключает весь вывод, и +answer, который включает только информацию об ответах.

Применение

Зачастую путаница возникает из-за порядка выполнения параметров. Если использовать параметры в неверной последовательности, результат может удивить отсутствием какого-либо вывода. Рассмотрим, как это работает:

  1. Правильный порядок: +noall +answer

    • Сначала отключается весь вывод, затем включается только секция ответа.
    $ dig +noall +answer google.de

    Ожидаемый вывод:

    google.de.              203     IN      A       74.125.227.119
    google.de.              203     IN      A       74.125.227.120
    google.de.              203     IN      A       74.125.227.127
  2. Неправильный порядок: +answer +noall

    • Сначала включается только ответ, затем вся информация отключена.
    $ dig +answer +noall google.de

    Ожидаемый результат: никакого вывода, поскольку +noall отключил всю информацию, включая ранее активированный +answer.

Таким образом, для достижения желаемого результата важно внимательно выбирать и расставлять параметры. Дополнительные параметры, такие как +nocomments, могут использоваться для устранения оставшихся комментиров, если они всё-таки появляются в некоторых версиях программного обеспечения или специфичных конфигурациях DNS. Однако практическое использование +short также может быть полезным:

$ dig +short google.com

Этот параметр выдаст только IP адреса, что также является полезным в некоторых контекстах, где нужна лишь краткая информацию без лишних деталей.

Заключение

Корректное использование команды dig с параметрами +noall +answer требует понимания концепций последовательного выполнения параметров и порядка их указания. Это помогает значительно упростить вывод, особенно когда требуется только секция с ответом DNS-запроса. Внимание к деталям при настройке этих параметров позволяет эффективно использовать команду dig в различных сценариях диагностики сети и проверки DNS.

Оцените материал
Добавить комментарий

Капча загружается...