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

时间:2012-07-29 01:32:32

标签: python dns

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

3 个答案:

答案 0 :(得分:13)

使用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] 

答案 1 :(得分:5)

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

nslookup -q=txt somedomain.com

我发现这就是我所需要的,简短的& amp;甜。

答案 2 :(得分:-5)

这样的事情应该至少可以获得网址的价值,我使用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

我没有测试任何这个但是从以前的项目中删除它。

祝你好运!