私は自分自身を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と設定番号を吐き出します。私が今行う必要があるのは、この出力を2つの期待される結果と比較することです。したがって、bbc.co.ukの場合はcluster1a.eu.messagelabs.comとなります。 & cluster1.eu.messagelabs.com。 (現在の設定番号に応じて順序が変わります)
これを行う最も良い方法は、予想される結果を配列/リストに追加して、スクリプトに出力を配列/リストと比較させることです真実または偽の陳述を提供しますが、一日中、さまざまなコードの整理をしようとすると、これまでのところ私の理解を超えていることが証明されています。
最終的には、結果が偽になる場合は自分自身や同僚に警告することができますが、これが実装される最良の方法を決定していないため、後で待つことができます。 私が望んでいる結果を達成するためのベストプラクティスについて、大まかな概要を私に与えることができますか?
私はこれを読むために時間を割いて誰に感謝:)
はありがとう、クリス
EDIT:これは私が望んでいた正確に何をするように見える、あなたが助けるために皆に感謝!
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!"
あなたの返信ありがとう!この変更を行うと、出力は['cluster1.eu.messagelabs.com。'] ['cluster1.eu.messagelabs.com。'、 'cluster1a.eu.messagelabs.com。'] ですか? –