<p>(回答如何计算返回的数据)</p>
<p>您可以以类似的方式获取TXT、CNAME和SOA记录,但您只需根据DNS响应对象获取正确的属性。</p>
<p>使用python dir()内置是您的朋友,也是了解DNS响应对象中存在哪些属性的一种方法-在API文档不可用时非常方便。</p>
<p>要找出适当的属性,请将for循环临时更改为以下内容:</p>
<pre><code> for data in answer:
print dir(data)
print data
</code></pre>
<p><strong>另一个更快的方法是查看dnspython的API文档,这些页面列出了每个返回对象的属性。</p>
<p>最后,如果库在python中或者不在python中,那么可以查看源代码,如果C代码可用。</p>
<p>(回答你的问题:)</p>
<p><strong>以下是TXT、CNAME和SOA查询的示例:</strong></p>
<p>文本</p>
<p><a href="http://www.dnspython.org/docs/1.15.0/dns.rdtypes.txtbase.TXTBase-class.html#section-InstanceVariables" rel="noreferrer">http://www.dnspython.org/docs/1.15.0/dns.rdtypes.txtbase.TXTBase-class.html#section-InstanceVariables</a></p>
<pre><code>answers = dns.resolver.query('google.com', 'TXT')
print ' query qname:', answers.qname, ' num ans.', len(answers)
for rdata in answers:
for txt_string in rdata.strings:
print ' TXT:', txt_string
</code></pre>
<p>CNAME公司</p>
<p><a href="http://www.dnspython.org/docs/1.15.0/dns.rdtypes.ANY.CNAME.CNAME-class.html" rel="noreferrer">http://www.dnspython.org/docs/1.15.0/dns.rdtypes.ANY.CNAME.CNAME-class.html</a></p>
<pre><code>answers = dns.resolver.query('mail.google.com', 'CNAME')
print ' query qname:', answers.qname, ' num ans.', len(answers)
for rdata in answers:
print ' cname target address:', rdata.target
</code></pre>
<p>SOA</p>
<p><a href="http://www.dnspython.org/docs/1.15.0/dns.rdtypes.ANY.SOA.SOA-class.html#section-InstanceVariables" rel="noreferrer">http://www.dnspython.org/docs/1.15.0/dns.rdtypes.ANY.SOA.SOA-class.html#section-InstanceVariables</a></p>
<pre><code>answers = dns.resolver.query('google.com', 'SOA')
print 'query qname:', answers.qname, ' num ans.', len(answers)
for rdata in answers:
print ' serial: %s tech: %s' % (rdata.serial, rdata.rname)
print ' refresh: %s retry: %s' % (rdata.refresh, rdata.retry)
print ' expire: %s minimum: %s' % (rdata.expire, rdata.minimum)
print ' mname: %s' % (rdata.mname)
</code></pre>