挖只显示答案


49

我只想显示查询的答案。

通常,它会打印出许多其他信息,例如:

;; <<>> 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

我希望将其简化为答案部分。

挖掘有很多选择,我发现一个很好的选择是 +noall +answer

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

它省略了大部分内容,但仍显示此选项内容。

关于如何使用挖掘选项删除它的任何想法?我肯定可以使用其他工具将其删除,但带有dig本身的选项将是最干净,最友好的选择。


1
有什么${HOME}/.digrc吗?
ablackhat 2012年

不,虽然是个好主意
Zulakis 2012年

Answers:


49

我不确定为什么您会在输出中收到评论。这是您想要的行为的正确选项集。以下是具有相同版本的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
这似乎很有趣。即使根据手册支持使用dig +noall +answer google.de作品,dig google.de +noall +answer也不会使用作品。
Zulakis 2012年

4
标志的顺序显然很重要。
generalnetworkerror 2013年

18

使用“ +短”选项

[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

抱歉,我必须编辑格式。希望现在已经清楚了。
Alphonse Musette

1
我仍然不明白,这是为什么,为什么呢?
Pierre.Vriens

5
我想我对原始提问者的意图做了一个假设。对我来说,完整的答案行不太有用。如果我不记得dig的选项,可以执行“ dig google.com | grep ^ google”。但是+ short选项返回的IP地址或主机名没有其他文本,例如,我可以在脚本中使用它来创建防火墙规则。这通常是dig的输出对我很重要的部分。如果要在脚本中使用结果,则仍然需要使用“ + noall + noanswer”选项。
Alphonse Musette

6

使用dig +param domain,而不是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 +answer开关根据其在命令行中的位置而有所不同。这肯定是一个错误,dig因为+short双方都可以正常工作。

% 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

您是否将其归档为bug或为什么在此问题的答案中添加了这句话的表述,而该问题已于2年前得到解决?
Zulakis 2014年

接受的答案是“我不确定为什么您会在输出中得到评论。”,而我确实知道为什么,并且此答案是最准确的答案。
Nowaker

1
可能是因为您一次可以查询多个名称。比较“ dig -t soa + noall + answer yahoo.com google.com +问题”与“ dig -t soa + noall + answer yahoo.com + question google.com”
simpleuser 2015年

1

根据手册页,您可能想要尝试:

dig google.de +noall +answer +nocomments

如果这不起作用,我将不得不问您正在使用哪种发行版?

编辑:那是最奇怪的事情。您必须将选项放在查询之前。

[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
参见下文,以某种方式将其弄乱dig google.de +noall +answer,必须将dig +noall +answer google.de其工作。nocomments已包含在noall
Zulakis 2012年
By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.