Tôi có một tập lệnh nhỏ kiểm tra danh sách tên miền lớn cho bản ghi MX của họ, mọi thứ hoạt động tốt nhưng khi tập lệnh tìm thấy tên miền không có bản ghi, sẽ mất khá nhiều thời gian để bỏ qua cai tiêp theo.Dnspython: Thiết lập thời gian chờ truy vấn/toàn thời gian
Tôi đã thử thêm:
query.lifetime = 1.0
or
query.timeout = 1.0
nhưng điều này dường như không làm gì cả. Có ai biết cách thiết lập cấu hình này không?
Tập lệnh của tôi bên dưới, cảm ơn thời gian của bạn.
import dns.resolver
from dns.exception import DNSException
import dns.query
import csv
domains = csv.reader(open('domains.csv', 'rU'))
output = open('output.txt', 'w')
for row in domains:
try:
domain = row[0]
query = dns.resolver.query(domain,'MX')
query.lifetime = 1.0
except DNSException:
print "nothing here"
for rdata in query:
print domain, " ", rdata.exchange, 'has preference', rdata.preference
output.writelines(domain)
output.writelines(",")
output.writelines(rdata.exchange.to_text())
output.writelines("\n")
Cảm ơn bạn rất nhiều !, Tôi đã thử câu trả lời của bạn với thời gian chờ, nhưng vẫn có cùng một vấn đề, nhưng sử dụng resolver.lifetime = 1.0 đã hoạt động. –
Vâng, tôi không thực sự chắc chắn sự khác biệt là gì (không bao giờ được sử dụng thư viện đó) nhưng tôi vui vì bạn đã tìm thấy thuộc tính phù hợp. – kindall
Lưu ý rằng 'timeout' chỉ bằng một nửa của phương trình. Như trong ví dụ ban đầu của OP, 'lifetime' cũng nên được sử dụng. Xem http://comments.gmane.org/gmane.comp.python.dnspython.user/144 –