如何检查主机的DNS TXT记录的值?

oro*_*aki 10 python dns

我想通过脚本验证域名所有权,特别是Python脚本,并且想知道如何查找DNS TXT条目的值.我知道有这方面的服务和网站,但我想用脚本来做.

jor*_*anm 14

使用dnspython很容易.这是一个例子:

import dns.resolver
print dns.resolver.query("aaa.asdflkjsadf.notatallsuspicio.us","TXT").response.answer[0][-1].strings[0]
Run Code Online (Sandbox Code Playgroud)

这给出了以下输出:

PnCcKpPiGlLfApDbDoEcBbPjIfBnLpFaAaObAaAaMhNgNbIfPbHkMiEfPpGgJfOcPnLdDjBeHkOjFjIbPbIoKhIjHfJlAhAhFgGbGgNlMgKmFkLgNfBjMbCoBeNbGeOnAeHgLmKoFlLhLmDcKlEdEbDpFeHkFaBlGnHiOnChIoMlIhBgOnFfKoEhDnFkKfDaMgHbJhMgPgMjGiAoJpKjKkPaIcAdGiMbIbBbAfEiKjNbCeFoElKgOePmGjJaImL
Run Code Online (Sandbox Code Playgroud)

另一个选择是dig在子进程中使用:

import subprocess

print subprocess.Popen(["dig","-t","txt","aaa.asdflkjsadf.notatallsuspicio.us","+short"], stdout=subprocess.PIPE).communicate()[0] 
Run Code Online (Sandbox Code Playgroud)

  • 你可以在这里使用`subprocess.check_output()`而不是`.communicate()` (2认同)

小智 6

这可能过于简化,但如果你想要的只是快速阅读TXT记录并且不介意单独解析结果:

nslookup -q=txt somedomain.com
Run Code Online (Sandbox Code Playgroud)

我发现这做了我需要的,短而甜的.