如何从 dns python 中的文件将输入从文件传递到 dns.resolver.Resolver.query()?

How to pass inputs from file to dns.resolver.Resolver.query() from file in dns python?

我正在编写代码以将域名和 ip 地址从文件传递到 dns 解析器查询。但是好像没有效果

import dns.resolver
import os
import sys

d = open(str(sys.argv[1]),'r') #contains the domain name list
ip = open(str(sys.argv[2]),'r') # contain the list of ip address as dns resolver 

domain_list = d.readlines()
ip_list = ip.readlines()
my_resolver = dns.resolver.Resolver()
output_f = open("output.txt",'a')
for nameserv in ip_list:
        my_resolver.nameservers = [nameserv]
        for domain in domain_list:
                try:
                        answer = my_resolver.query(domain)
                        entry = "server : " + "   " + nameserv + " " + "query_result " + str(answer) + '\n'
                        output_f.write(entry)
                except :
                        print domain,nameserv
                        print "no domain"


d.close()
ip.close()
output_f.close()

我的 IP 地址列表包含 8.8.8.8 和 127.0.1.1,它们都是有效的 dns 解析器。域列表包含 www.facebook.com、www.urltrends.com 等 我仍然收到不存在域的错误消息。

readlines() 还读取尾随的 \n,然后将其传递给解析器。试试这个:

my_list = open(filename, 'r').read().splitlines()