С параметрами по умолчанию dig
показывает статус возврата для запроса DNS в комментарии ;; - >> ЗАГОЛОВОК << - ... 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
. Есть ли простой способ показать статус?
Есть, но это делает вывод менее лаконичным. Насколько мне известно, код ответа показан только в + комментариях
.
$ 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 для предпочитаемого вами языка.