С параметрами по умолчанию 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 для предпочитаемого вами языка.