【问题标题】:How to pass inputs from file to dns.resolver.Resolver.query() from file in dns python?如何将输入从文件传递到 dns python 中的文件中的 dns.resolver.Resolver.query()?
【发布时间】:2015-09-25 16:42:53
【问题描述】:

我正在编写一个代码来将域名和 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 等 我仍然收到不存在域的错误。

【问题讨论】:

    标签: python dns parameter-passing dnspython


    【解决方案1】:

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

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

    【讨论】:

    • 非常感谢。这正是我想要的。
    猜你喜欢
    • 2019-08-04
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2017-01-05
    • 1970-01-01
    • 2011-11-29
    • 2020-09-06
    相关资源
    最近更新 更多