一 點睛
dnspython(是python實現的乙個dns 工具包,它支援幾乎所有的記錄型別,可以用於查詢、傳輸並動態更新 zone資訊,同時支援tsig(事務簽名)驗證訊息和edns0(擴充套件 dns)。在系統管理方面,我們可以利用其查詢功能來實現dns服務監控以及解析結果的校驗,可以代替nslookup及dig等工具,輕鬆做到與現有平台的整合。
二 安裝
(venv) e:\python\python_auto_maintain>pip install dnspython
三 模組網域名稱解析方法詳解
dnspython模組提供了大量的dns處理方法,最常用的方法是網域名稱查詢。dnspython提供了乙個dns解析器類——resolver,使用它的query 方法來實現網域名稱的查詢功能。
query方法的定義如下:
query(self, qname, rdtype=1, rdclass=1, tcp=false, source=none, raise_on_no_answer=true, source_port=0)
a記錄,將主機名轉換成ip位址;
mx記錄,郵件交換記錄,定義郵件伺服器的網域名稱;
cname記錄,指別名記錄,實現網域名稱間的對映;
ns記錄,標記區域的網域名稱伺服器及授權子域;
ptr記錄,反向解析,與a記錄相反,將ip轉換成主機名;
soa記錄,soa標記,乙個起始授權區的定義。
四 常見解析型別
1 點睛
常見的dns解析型別包括a、mx、ns、cname等。利用 dnspython的dns.resolver.query方法可以簡單實現這些dns型別的查詢, 為後面要實現的功能提供資料**,比如對乙個使用dns輪循業務的網域名稱進行可用性監控,需要得到當前的解析結果。
2 a記錄
2.1 說明
實現a記錄查詢。
2.2 **
import dns.resolver
domain = raw_input('please input an domain: ')
a = dns.resolver.query(domain, 'a')
for i in a.response.answer:
for j in i.items:
print(j.address)
2.3 結果
e:\python\python_auto_maintain\venv\scripts\python.exe e:/python/python_auto_maintain/1_3_2.py
please input an domain: www.google.com
66.220.155.14
3 mx
3.1 說明
實現mx記錄查詢方法
3.2 **
import dns.resolver
domain = raw_input('please input an domain: ')
mx = dns.resolver.query(domain, 'mx')
for i in mx:
print ('mx preference =', i.preference, 'mail exchanger =', i.exchange)
3.3 結果
e:\python\python_auto_maintain\venv\scripts\python.exe e:/python/python_auto_maintain/1_3_2.py
please input an domain: 163.com
('mx preference =', 50, 'mail exchanger =', 163mx00.mxmail.netease.com.>)
('mx preference =', 10, 'mail exchanger =', 163mx03.mxmail.netease.com.>)
('mx preference =', 10, 'mail exchanger =', 163mx02.mxmail.netease.com.>)
('mx preference =', 10, 'mail exchanger =', 163mx01.mxmail.netease.com.>)
4 ns記錄
4.1 說明
實現ns記錄查詢方法。
4.2 **
import dns.resolver
domain = raw_input('please input an domain: ')
ns = dns.resolver.query(domain, 'ns')
for i in ns.response.answer:
for j in i.items:
print (j.to_text())
4.3 結果
5 cname記錄
5.1 說明
實現cname記錄查詢方法。
5.2 **
import dns.resolver
domain = raw_input('please input an domain: ')
cname = dns.resolver.query(domain, 'cname')
for i in cname.response.answer:
for j in i.items:
print (j.to_text())
5.3 結果
e:\python\python_auto_maintain\venv\scripts\python.exe e:/python/python_auto_maintain/1_3_2.py
please input an domain: www.163.com
www.163.com.lxdns.com.
python 介面自動化 detetime模組
驗證發帖介面遇到需要傳入 截止日期 這個引數,打算寫乙個獲取未來的時間的方法,但是開始遇錯了,整理下錯誤以便後面再遇到此類問題。執行得到以下錯誤,忘記把時間轉成str型別了 獲取當前年月time.strftime y m 獲取當前年月日time.strftime y m d 獲取當前日期和時間 fo...
Python requests介面自動化模組劃分
之前不管是接觸ui自動化還是介面自動化,對於這個專案的層級結構沒有啥概念,就知道建立乙個檔案去寫。後來慢慢懂了分層的思想,然後去觀察別人建立的層級,發現確實都是大同小異的。就以python requests介面自動化來說一下如何建立這些模組 為什麼要這樣去建立。1 config python pac...
python自動化測試 異常處理
在自動化測試過程中,我們會遇到 在執行過程中可能存在錯誤,為了能夠更好的對這些異常情況進行處理,我們一般會使用try.except的方式來處理這些錯誤資訊,所以我總結了幾種異常的處理方式,能夠給你的自動化測試 錦上添花。異常的處理機制 1 如果 在執行時發生錯誤,直譯器會查詢相應的處理語句。2 如果...