回答のみを表示する


49

digにクエリの答えを表示するだけです。

通常、次のような追加情報が大量に出力されます。

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

これを回答セクションだけに減らしたいです。

digにはたくさんのオプションがありますが、私が見つけた良いものは +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

いいえ、良いアイデア
-Zulakis

回答:


50

出力にコメントが表示される理由がわかりません。これが、必要な動作の正しいオプションセットです。同じバージョンの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はできません。
ズラキス

4
フラグの順序は明らかに重要です。
generalnetworkerror

18

「+ short」オプションを使用します

[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

申し訳ありませんが、書式を編集する必要がありました。うまくいけば、今は明らかです。
アルフォンスミュゼット

1
私はまだそれを取得しません、なぜこれが質問に対する答えですか?
Pierre.Vriens

5
私は元の質問者の意図について仮定をしたと思います。私にとって、完全な回答行はあまり役に立ちません。digのオプションを覚えていない場合、「dig google.com | grep ^ google」を実行できます。しかし、+ shortオプションは追加のテキストなしでIPアドレスまたはホスト名を返します。これをスクリプトで使用して(たとえば)ファイアウォールルールを作成できます。それは通常、私にとって重要な発掘の出力の一部です。「+ noall + noanswer」オプションでは、スクリプトで結果を使用する場合、文字列処理を適用する必要があります。
アルフォンスミュゼット

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

バグとして提出したのですか、それとも2年前に解決されたこの質問に受け入れられた答えの言い換えを追加したのですか?
ズラキス14

受け入れられた答えは「なぜあなたが出力でコメントを得ているのかわかりません。」と言いますが、私は理由を知っていますが、この答えは最も正確なものです。
ノワカー14

1
おそらく一度に複数の名前を照会できるためです。「dig -t soa + noall + answer yahoo.com google.com + question」と「dig -t soa + noall + answer yahoo.com + question google.com」を
比較-simpleuser

1

manページによると、次のことを試してみるとよいでしょう。

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.denocommentsに含まれていますnoall
ズラキス
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.