Назад | Перейти на главную страницу

Как включить Dig, чтобы отображать коды статуса?

С параметрами по умолчанию dig показывает статус возврата для DNS-запроса в комментарии ;; ->>HEADER<<- ... status: NXDOMAIN:

ubuntu:~$ dig hosted-by.myinternetservices.com.

; <<>> DiG 9.11.3-1ubuntu1.2-Ubuntu <<>> hosted-by.myinternetservices.com.
;; global options: +cmd
;; Got answer:
;; ->>HEADER<<- opcode: QUERY, status: NXDOMAIN, id: 63671
;; flags: qr rd ra; QUERY: 1, ANSWER: 0, AUTHORITY: 0, ADDITIONAL: 1

;; OPT PSEUDOSECTION:
; EDNS: version: 0, flags:; udp: 65494
;; QUESTION SECTION:
;hosted-by.myinternetservices.com. IN   A

;; Query time: 0 msec
;; SERVER: 127.0.0.53#53(127.0.0.53)
;; WHEN: Wed Oct 17 10:15:02 CEST 2018
;; MSG SIZE  rcvd: 61

Но очень часто я хочу получить более короткий вывод от dig и я использую вариант +noall для достижения этой цели:

ubuntu:~$ dig +noall +answer www.seznam.cz.
www.seznam.cz.          266     IN      A       77.75.77.39
ubuntu:~$ dig +noall +short www.seznam.cz.
77.75.77.39

Мне также нужно видеть статус для случаев, когда нет ответа, но я не смог получить статус, когда использую +noall. Есть простой способ показать статус?

Есть, но это делает вывод менее лаконичным. Код ответа показан только в +comments насколько мне известно.

$ dig +noall +comments +answer example.com
;; Got answer:
;; ->>HEADER<<- opcode: QUERY, status: NOERROR, id: 7367
;; flags: qr rd ra; QUERY: 1, ANSWER: 1, AUTHORITY: 0, ADDITIONAL: 1

;; OPT PSEUDOSECTION:
; EDNS: version: 0, flags:; udp: 4000
;; ANSWER SECTION:
example.com.            58368   IN      A       93.184.216.34

Единственный способ еще больше сжать его - выполнить собственные преобразования текста в вышеприведенном выводе. Если вам нужно часто работать с отдельными полями ответа DNS, возможно, вам лучше написать собственный сценарий с использованием клиентской библиотеки DNS для предпочитаемого вами языка.