Как включить коп, чтобы показать коды состояния?

С параметрами по умолчанию 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, Есть ли простой способ показать статус?

2 ответа

Есть, но это делает вывод менее лаконичным. Код ответа отображается только в +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 для предпочитаемого вами языка.

Я хотел бы реализовать +exit и использовать правильные ненулевые коды выхода для указания сценариев сбоя.

Самое близкое, что мне удалось сделать, это адаптировать код выхода с помощью grep.

например

копать +коротко trilliondollarunicorn.com | grep -e '.*' -e '^$' || эхо 'нет'

Другие вопросы по тегам