Я считаю себя очень новичком в python (и программировании в целом!), Но я работаю, хотя "изучаю python трудный путь" Zed A Shaw и замедляю работу.
Я пишу небольшой скрипт, чтобы проверить, должны ли живые mx-записи домена соответствовать ожиданиям и не были ли они изменены (длинная история), и пока у меня есть следующее:
import dns.resolver
domain = 'bbc.co.uk'
for x in dns.resolver.query(domain,'MX',):
print x.to_text()
Это использует модуль dnspython, чтобы выплевывать mailhost и номер предпочтения. Теперь мне нужно сравнить эти результаты с двумя ожидаемыми результатами, поэтому для bbc.co.uk это будет cluster1a.eu.messagelabs.com. & cluster1.eu.messagelabs.com. (Их порядок меняется в зависимости от текущего номера предпочтения)
Я подумал, что лучший способ сделать это - добавить ожидаемые результаты в массив / список, чтобы скрипт попытался сравнить выходные данные с массивом / списком и предоставить утверждение true или false, но после того, как все потрачено день, пробующий различные варианты кода, это до сих пор выходит за рамки моего понимания.
В конечном итоге я хотел бы предупредить себя или своих коллег, если результат окажется ложным, но это может подождать до тех пор, пока я не определился с наилучшим способом реализации этого.
Сможет ли какая-нибудь добрая душа дать мне приблизительное представление о том, какой будет наилучшая практика для достижения результата, на который я надеюсь?
Я ценю всех, кто нашел время, чтобы прочитать это:)
Спасибо, Крис
РЕДАКТИРОВАТЬ: Это похоже на то, что я надеялся, спасибо всем за помощь!
import dns.resolver
domain = 'bbc.co.uk'
expected_responses = ['cluster1.eu.messagelabs.com.', 'cluster1a.eu.messagelabs.com.']
for x in dns.resolver.query(domain, 'MX'):
if x.to_text().split()[1] not in expected_responses:
print "Unexpected MX record found!"
else:
print x.to_text().split()[1] + " OK!"