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

2024-05-17 06:24:29 发布

您现在位置:Python中文网/ 问答频道 /正文

我希望通过一个脚本(特别是Python脚本)来验证域所有权,并且希望知道如何查找DNS TXT条目的值。我知道这里有服务和网站,但我想用一个脚本。


Tags: 目的txt脚本网站dns所有权
3条回答

这可能过于简单,但如果您只想快速读取TXT记录,不介意单独分析结果:

nslookup -q=txt somedomain.com

我发现这做了我需要的,短和甜。

这很容易使用dnspython。下面是一个例子:

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

这将提供以下输出:

PnCcKpPiGlLfApDbDoEcBbPjIfBnLpFaAaObAaAaMhNgNbIfPbHkMiEfPpGgJfOcPnLdDjBeHkOjFjIbPbIoKhIjHfJlAhAhFgGbGgNlMgKmFkLgNfBjMbCoBeNbGeOnAeHgLmKoFlLhLmDcKlEdEbDpFeHkFaBlGnHiOnChIoMlIhBgOnFfKoEhDnFkKfDaMgHbJhMgPgMjGiAoJpKjKkPaIcAdGiMbIbBbAfEiKjNbCeFoElKgOePmGjJaImL

另一个选项是在子流程中使用dig

import subprocess

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

像这样的东西应该至少能得到URL的值,我用google.com作为例子。

import pycurl
import StringIO
url = "whatsmyip.us/dns_txt.php?host=google.com"
c = pycurl.Curl()
c.setopt(pycurl.URL, url)
c.setopt(pycurl.HTTPHEADER, ["Accept:"])
txtcurl = StringIO.StringIO()
c.setopt(pycurl.WRITEFUNCTION, txtcurl.write)
c.perform

data = txtcurl.getvalue()
data = data.replace("Done!", "")
print data

我没有测试这些,但从以前的项目中提取出来。

祝你好运!

相关问题 更多 >