首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >python获取dns.resolver记录类型

python获取dns.resolver记录类型
EN

Stack Overflow用户
提问于 2011-05-06 03:29:36
回答 5查看 19.8K关注 0票数 4

我正在学习如何使用python dns对象。快速问题因为我看到许多示例显示了将dns.resolver方法与DNS记录类型(CNAME、NS等)一起使用的方法。有没有一种方法可以使用这个dns对象来查询DNS名称并提取其记录类型的解析。类似于答案部分中提供的DIG。

谢谢,

吉姆

EN

回答 5

Stack Overflow用户

发布于 2017-07-12 06:41:02

您可以使用rdatatype获取类型

代码语言:javascript
复制
>>> import dns.resolver
>>> answer = dns.resolver.query('google.com')
>>> rdt = dns.rdatatype.to_text(answer.rdtype)
>>> print(rdt)
A
票数 5
EN

Stack Overflow用户

发布于 2013-10-05 13:59:33

以下是CNAME的一个示例:

代码语言:javascript
复制
>>> cname = dns.resolver.query("mail.unixy.net", 'CNAME')
>>> for i in cname.response.answer:
...     for j in i.items:
...             print j.to_text()
... 
unixy.net.

TXT:

代码语言:javascript
复制
>>> txt = dns.resolver.query("unixy.net", 'TXT')
>>> for i in txt.response.answer:
...     for j in i.items:
...             print j.to_text()
... 
"v=spf1 ip4:..."

NS:

代码语言:javascript
复制
>>> ns = dns.resolver.query("unixy.net", 'NS')
>>> for i in ns.response.answer:
...     for j in i.items:
...             print j.to_text()
... 
ns2.unixy.net.
ns1.unixy.net.

您可以获得遵循相同模式的大多数记录。多个响应查询存储在一个列表中。所以有时循环是必要的(例如:多个A和NS recs)。

票数 3
EN

Stack Overflow用户

发布于 2014-01-29 00:05:24

到目前为止,我找到的确定它是A还是CNAME答案的唯一检查是测试qname属性是否等于canonical_name属性。

代码语言:javascript
复制
answer = dns.resolver.query('www.example.com')
if answer.qname == answer.canonical_name:
    print "This is A record"
else:
    print "This isn't A, probably CNAME..."
票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/5903097

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档