首页 > 解决方案 > Python 检查文件中的服务器并验证 dns 注册

问题描述

我试图让这个脚本检查一堆服务器是否在 DNS 服务器上注册。当他们未注册时,在文件中写一行,我可以查看或通过电子邮件发送其他脚本

import os
import dns.resolver

filename = 'servers.txt'    #when using a different filename change the name of the file

def resolv(res):
    res = ''''for qtype in 'A', 'AAAA', 'MX', 'NS', 'TXT', 'SOA':
              answer = dns.resolver.query('line',qtype, raise_on_no_answer=False)
    if answer.rrset is not None:
        print(answer.rrset)''' %(res)

with open(filename, 'r') as f:
    for line in f:
        print(line)

    for line in f:
        for qtype in 'A', 'AAAA', 'MX', 'NS', 'TXT', 'SOA':
            answer = dns.resolver.query(line,qtype, raise_on_no_answer=False) 
        if answer.rrset is not none:
            print(answer.rrset) %(res)   
        #elif
            print(line)

当我运行脚本时,我得到以下错误作为输出:

Traceback (most recent call last):
File "read.py", line 18, in <module>
    answer = dns.resolver.query(line,qtype, raise_on_no_answer=False) 
File "/usr/local/lib/python2.7/dist-packages/dns/resolver.py", line 1102, in query
    lifetime)
File "/usr/local/lib/python2.7/dist-packages/dns/resolver.py", line 1002, in query
    raise NXDOMAIN(qnames=qnames_to_try, responses=nxdomain_responses)
dns.resolver.NXDOMAIN: None of DNS query names exist: servername\010.xx.domain.net., servername\010.xx.domain.net., servername\010.xx.domain.net., servername\010.xx.domain.net.

它没有完成读取文件。我错过了哪些步骤?

标签: pythondns

解决方案


none拼写错误正确的是None


推荐阅读