Я пытаюсь автоматизировать некоторые задачи с помощью python. Я должен chcek, если некоторые домены все еще находятся в наших DNS-серверах. Поэтому, просматривая стек, я нашел скрипт с помощью dns.resolver и попытался приспособить его к моим потребностям. Итак, скрипт выглядит так:
import socket
import dns.resolver
mylist=[]
with open('domainfile.txt') as file:
for line in file:
mylist.append(line)
length = len(mylist)
resolver = dns.resolver.Resolver()
resolver.nameservers=[socket.gethostbyname('dns.example.com')]
for i in range(length):
for rdata in resolver.query(mylist[i], 'CNAME') :
print(rdata.target)
My domainfile.txt
выглядит так:
domain1
domain2
domain3
[...]
И сообщение об ошибке, которое я получил, выглядит так:
Traceback (последний вызов был последним): файл "dns python .py", строка 20, для rdata в resolver.query (lista [i], 'CNAME'): файл "/ usr / local / lib / python3 .7 / dist-packages / dns / resolver.py ", строка 1053, в запросе lift_on_no_answer) Файл" /usr/local/lib/python3.7/dist-packages/dns/resolver.py ", строка 236 , в init повысить NoAnswer (response = response) dns.resolver.NoAnswer: DNS-ответ не содержит ответа на вопрос: domain1 \ 010.example.com. IN CNAME
Если я просто вставлю свой домен в , если утверждение вместо итерации по mylist , я получу то, что мне нужно. Но когда я пытаюсь сделать это через список, он добавляет к моему домену \ 010 , и тогда ничего не происходит. Можете ли вы помочь мне с этим? Спасибо!