这个使用dnspython
代码的简单代码段将名称解析为IP。
在此example中,域名为google.com
,答案为A记录。如何在一个查询中获取多个记录(例如TXT,CNAME,..)?
from dns.resolver import dns
myResolver = dns.resolver.Resolver() #create a new instance named 'myResolver'
myAnswers = myResolver.query("google.com", "A") #Lookup the 'A' record(s) for google.com
for rdata in myAnswers: #for each response
print (rdata) #print the data
答案 0 :(得分:0)
你不能。请查看code,尤其是rdtype
函数中的参数query()
。
first = myResolver.query("google.com", "A")
second = myResolver.query("google.com", "MX")
third = myResolver.query("google.com", "NS")
答案 1 :(得分:0)
我认为没有"任何"选项。这可能是因为DNS反射攻击和UDP上的DNS查询的安全隐患。可能最好使用类似'类型的列表。下面:
import dns.resolver
def get_domain():
types=[
'A',
'TXT',
'CNAME',
'NS',
]
for type in types:
try:
reponse = dns.resolver.query('domain.com', type)
for data in response:
print (type, "-", data.to_text())
except Exception as err:
print(err)
if __name__ == '__main__':
get_domain('stackoverflow.com')
由于DNS反射DDoS攻击的激增,现在DNS查询存在很多安全性,因此您可能希望对代码进行速率限制。特别是如果您针对多个域运行此操作