Как включить коп, чтобы показать коды состояния?
С параметрами по умолчанию 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 '^$' || эхо 'нет'