Вопрос или проблема
Я хочу, чтобы 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
, который включает только информацию об ответах.
Применение
Зачастую путаница возникает из-за порядка выполнения параметров. Если использовать параметры в неверной последовательности, результат может удивить отсутствием какого-либо вывода. Рассмотрим, как это работает:
-
Правильный порядок:
+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
-
Неправильный порядок:
+answer +noall
- Сначала включается только ответ, затем вся информация отключена.
$ dig +answer +noall google.de
Ожидаемый результат: никакого вывода, поскольку
+noall
отключил всю информацию, включая ранее активированный+answer
.
Таким образом, для достижения желаемого результата важно внимательно выбирать и расставлять параметры. Дополнительные параметры, такие как +nocomments
, могут использоваться для устранения оставшихся комментиров, если они всё-таки появляются в некоторых версиях программного обеспечения или специфичных конфигурациях DNS. Однако практическое использование +short
также может быть полезным:
$ dig +short google.com
Этот параметр выдаст только IP адреса, что также является полезным в некоторых контекстах, где нужна лишь краткая информацию без лишних деталей.
Заключение
Корректное использование команды dig с параметрами +noall +answer
требует понимания концепций последовательного выполнения параметров и порядка их указания. Это помогает значительно упростить вывод, особенно когда требуется только секция с ответом DNS-запроса. Внимание к деталям при настройке этих параметров позволяет эффективно использовать команду dig в различных сценариях диагностики сети и проверки DNS.