在dnspython中返回“A” DNS记录

6
我正在使用dnspython获取“A”记录并返回结果(给定域名的IP地址)。
我有这个简单的测试Python脚本:
import dns.resolver

def resolveDNS():
    domain = "google.com" 
    resolver = dns.resolver.Resolver(); 
    answer = resolver.query(domain , "A")
    return answer

resultDNS = resolveDNS()
print resultDNS

然而,输出为:
<dns.resolver.Answer object at 0x0000000004F56C50>

我需要将结果作为字符串获取。如果它是一个字符串数组,如何返回它?

你尝试过 for item in resultDNS: print item 吗?我认为这会让你对返回的对象内部有一个公正的了解,并且知道如何访问它的元素。 - Paandittya
2个回答

8
你得到的答案实际上是"A"记录的迭代器,因此你需要遍历它们:
answers = resolver.query(domain, 'A')
for answer in answers:
    print (answer.to_text())

4
import dns.resolver

def resolveDNS():
    domain = "google.com" 
    resolver = dns.resolver.Resolver(); 
    answer = resolver.query(domain , "A")
    return answer

resultDNS = resolveDNS()
answer = ''

for item in resultDNS:
    resultant_str = ','.join([str(item), answer])

print resultant_str

现在,resultant_str是一个字符串类型的变量,其中包含逗号分隔的A记录。


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接