如何解决如何从 DNS Python 响应中提取 SOA DNS 服务器
我正在尝试使用 DNS Python 来查找 FQDN 的 SOA。从那里,我试图隔离和提取 SOA 的 dns 服务器名称,但我无法找到正确的对象。
这是我进行故障排除的地方。我觉得我已经接近 answer.response.additional 了,但它仍然不是独立的服务器名称。
对此有什么建议吗?谢谢!
代码:
import dns.resolver
FQDN = 'testhostname.awesomedomain.com'
answer = dns.resolver.query(FQDN,'SOA',raise_on_no_answer=False)
if answer.rrset is None:
print(answer.response.authority[0].to_text())
soa_data = answer.response.authority[0].to_text()
else:
print(answer)
soa_data = answer
rr = answer.response.authority[0]
print(f"RR is {rr}")
print(f"DataType is {rr.rdtype}")
print(f"DNS SOA Type is {dns.rdatatype.SOA}")
print(f"Target 1 is {rr.target}")
print(f"Target 2 is {answer.canonical_name}")
print(f"Target 3 is {answer.qname}")
print(f"Target 4 is {answer.rdclass}")
print(f"Target 5 is {answer.response}")
print(f"Target 6 is {answer.response.additional}")
print(f"Target 7 is {answer.response.additional.name}")
解决方法
这是管理员如何从命令行获取信息的方法。希望它有所帮助,但您必须自己制作脚本。
步骤 1。查询您的 DNS 服务器(或任何您被允许使用的递归 DNS 服务器)以获取给定主机名的 A(IPv4,默认)或 AAAA (IPv6) 记录。在以下示例中,我使用了 www.ibm.com
。
CLI 命令:dig www.ibm.com.
答案(为简洁起见删除了一些行)
;; QUESTION SECTION:
;www.ibm.com. IN A
;; ANSWER SECTION:
www.ibm.com. 3599 IN CNAME www.ibm.com.cs186.net.
www.ibm.com.cs186.net. 43199 IN CNAME outer-ccdn-dual.ibmcom.edgekey.net.
outer-ccdn-dual.ibmcom.edgekey.net. 21600 IN CNAME outer-ccdn-dual.ibmcom.edgekey.net.globalredir.akadns.net.
outer-ccdn-dual.ibmcom.edgekey.net.globalredir.akadns.net. 900 IN CNAME e2874.dscx.akamaiedge.net.
e2874.dscx.akamaiedge.net. 20 IN A 92.123.17.145
;; AUTHORITY SECTION:
dscx.akamaiedge.net. 4000 IN NS n2dscx.akamaiedge.net.
dscx.akamaiedge.net. 4000 IN NS n6dscx.akamaiedge.net.
;; ADDITIONAL SECTION:
n2dscx.akamaiedge.net. 4000 IN A 23.212.110.6
n6dscx.akamaiedge.net. 4000 IN A 2.23.97.125
我们看到,名称是别名等的别名 (CNAME),它解析为 e2874.dscx.akamaiedge.net.
FQDN。这次我们不关心IP地址。我们对 AUTHORITY 部分感兴趣。 FQDN 所属的区域/域:dscx.akamaiedge.net.
。
第 2 步:现在请求第 1 步中域的 SOA 记录。
CLI 命令:dig -t soa dscx.akamaiedge.net.
;; QUESTION SECTION:
;dscx.akamaiedge.net. IN SOA
;; ANSWER SECTION:
dscx.akamaiedge.net. 1000 IN SOA n0dscx.akamaiedge.net. hostmaster.akamai.com. 1611089512 1000 1000 1000 1800
还有你的 SOA。
请注意,检索到的 SOA 恰好与 ibm.com.
域的 SOA 不同,因为名称是别名。我希望我没有正确理解您对您正在寻找的 SOA 的评论。
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。