dig mostrar apenas resposta


49

Eu quero cavar apenas para mostrar a resposta da minha consulta.

Normalmente, ele imprime muitas informações adicionais como esta:

;; <<>> DiG 9.7.3 <<>> google.de
;; global options: +cmd
;; Got answer:
;; ->>HEADER<<- opcode: QUERY, status: NOERROR, id: 55839
;; flags: qr rd ra; QUERY: 1, ANSWER: 1, AUTHORITY: 0, ADDITIONAL: 0

;; QUESTION SECTION:
;google.de.                     IN      A

;; ANSWER SECTION:
google.de.              208     IN      A       173.194.69.94

;; Query time: 0 msec
;; SERVER: 213.133.99.99#53(213.133.99.99)
;; WHEN: Sun Sep 23 10:02:34 2012
;; MSG SIZE  rcvd: 43

Quero que isso seja reduzido apenas à seção de respostas.

dig tem muitas opções, uma boa que encontrei foi +noall +answer

; <<>> DiG 9.7.3 <<>> google.de +noall +answer
;; global options: +cmd
google.de.              145     IN      A       173.194.69.94

Ele deixa de fora a maioria das coisas, mas ainda mostra essa coisa de opções.

Alguma idéia de como removê-lo usando as opções de escavação? Eu certamente poderia cortá-lo usando outras ferramentas, mas uma opção com a escavação em si seria a mais limpa e agradável.


1
Alguma coisa ${HOME}/.digrc?
ablackhat

Não, boa ideia embora
Zulakis 23/09

Respostas:


50

Não sei por que você está recebendo comentários na saída. Esse é o conjunto correto de opções para o comportamento que você deseja. Aqui estão as mesmas opções com a mesma versão do dig:

$ dig -version
DiG 9.7.3
$ dig +noall +answer google.de
google.de.      55  IN  A   173.194.44.216
google.de.      55  IN  A   173.194.44.223
google.de.      55  IN  A   173.194.44.215
$

8
Isso parece bastante interessante. Usar dig +noall +answer google.deobras, dig google.de +noall +answernão, mesmo que seja suportado de acordo com o manual.
Zulakis 23/09/12

4
A ordem das bandeiras aparentemente importa.
generalnetworkerror

18

Use a opção "+ curta"

[root@myhost ~]# dig +short google.com
216.58.194.142

[root@myhost ~]# dig +short -x 216.58.194.142
dfw06s49-in-f14.1e100.net.
dfw06s49-in-f142.1e100.net.

[root@myhost ~]# dig +short google.com soa
ns1.google.com. dns-admin.google.com. 181803313 900 900 1800 60

Desculpe, tive que editar minha formatação. Espero que agora esteja claro.
Alphonse Musette

1
Ainda não entendi, por que e como isso é uma resposta para a pergunta?
Pierre.Vriens

5
Suponho que fiz uma suposição sobre a intenção do questionador original. Para mim, a linha de resposta completa é menos útil. E eu posso fazer "dig google.com | grep ^ google" se não me lembro das opções de dig. Mas a opção + short retorna um endereço IP ou nome de host sem texto adicional, que eu posso (por exemplo) usar em um script para criar uma regra de firewall. Essa é geralmente a parte da saída do dig que importa para mim. Com as opções "+ noall + noanswer", ainda devo aplicar algum processamento de sequência se desejar usar o resultado em um script.
Alphonse Musette

6

Use dig +param domain, não dig domain +param.

% dig +noall +answer -t aaaa d.ns.zerigo.net
d.ns.zerigo.net.        37788   IN      AAAA    2607:fc88:1001:1::4
% dig -t aaaa d.ns.zerigo.net +noall +answer

; <<>> DiG 9.9.2-P2 <<>> -t aaaa d.ns.zerigo.net +noall +answer
;; global options: +cmd
d.ns.zerigo.net.        37797   IN      AAAA    2607:fc88:1001:1::4

+noall +answerO interruptor funciona de maneira diferente, dependendo de sua posição na linha de comando. Isso certamente é um bug, digpois +shortfunciona bem nos dois lados.

% dig +short -t aaaa d.ns.zerigo.net
2607:fc88:1001:1::4

% dig -t aaaa d.ns.zerigo.net +short
2607:fc88:1001:1::4

Você o registrou como bug ou por que adicionou esta paráfrase da resposta aceita a esta pergunta que foi resolvida há 2 anos?
Zulakis 28/07

A resposta aceita diz "Não sei por que você está recebendo comentários no resultado.", Enquanto eu sei por que e essa resposta é a mais precisa.
Nowaker

1
provavelmente porque você pode consultar mais de um nome por vez. comparar 'dig -t soa + noall + resposta yahoo.com google.com + pergunta' para 'cavar -t soa + noall + resposta + yahoo.com questão google.com'
simpleuser

1

De acordo com a página do manual, você pode tentar:

dig google.de +noall +answer +nocomments

Se isso não funcionar, eu teria que perguntar qual distribuição você está usando?

Edit: Essa é a coisa mais estranha. Você precisa colocar as opções antes da consulta.

[jglenn@lin02 ~]$ dig +noall +answer google.de
google.de.              35      IN      A       74.125.227.119
google.de.              35      IN      A       74.125.227.120
google.de.              35      IN      A       74.125.227.127
[jglenn@lin02 ~]$ dig +answer google.de +noall

; <<>> DiG 9.8.2rc1-RedHat-9.8.2-0.10.rc1.el6_3.3 <<>> +answer google.de +noall
;; global options: +cmd
[jglenn@lin02 ~]$ dig google.de +noall +answer

; <<>> DiG 9.8.2rc1-RedHat-9.8.2-0.10.rc1.el6_3.3 <<>> google.de +noall +answer
;; global options: +cmd
google.de.              203     IN      A       74.125.227.119
google.de.              203     IN      A       74.125.227.120
google.de.              203     IN      A       74.125.227.127

4
Veja abaixo, escavar de alguma forma bagunça quando é dig google.de +noall +answer, deve ser dig +noall +answer google.depara que ele funcione. nocommentsjá está incluído nonoall
Zulakis 23/09/12
Ao utilizar nosso site, você reconhece que leu e compreendeu nossa Política de Cookies e nossa Política de Privacidade.
Licensed under cc by-sa 3.0 with attribution required.