265

Is there a linux shell command that I can use to inspect the TXT records of a domain?

John
  • 7,343
  • 23
  • 63
  • 87

2 Answers2

357

Dig will also do it quite nicely: dig -t txt example.com and if you add the +short option you get just the txt record in quote marks with no other cruft.

WheresAlice
  • 5,530
  • 2
  • 24
  • 20
  • 13
    According to my DNS manager, I have 4 TXT records - an SPF one with host "@" and then 3 for domainkeys. However, ``dig -t`` only shows the SPF value. Any ideas? – Nic Cottrell Sep 21 '12 at 08:17
  • 26
    @NicCottrell and anyone else wondering about this; it is because of the domain you are querying. To view domain keys using dig it would be: `dkim-selector._domainkey.example.com` If Google was your email provider: `dig -t txt google._domainkey.example.com` – Robert Brisita Apr 11 '16 at 16:02
  • And `dkim-selector` is what your email server will write down on the email header, while dmarc is defined to be `_dmarc` prefix . – Rick Apr 26 '20 at 13:46
  • The reason for the mismatch, is `dig` doesn't show the sub-domains. You have to explicitly request that: `dig some._domainkey.foobar.com txt +short` – rustyMagnet May 31 '22 at 10:40
100

The host(1) command has a nice, terse output:

$ host -t txt google.com
google.com descriptive text "v=spf1 include:_netblocks.google.com ip4:216.73.93.70/31 ip4:216.73.93.72/31 ~all"
$ wajig findfile $(which host)
bind9-host: /usr/bin/host
$ 

With dig(1) I "have" to add the "+short" option all the time as well.

(I'm on Debian).

Cristian Ciupitu
  • 6,396
  • 2
  • 42
  • 56
asjo
  • 1,238
  • 1
  • 8
  • 6