python自動化DNS處理模組dnspython

2021-09-11 00:14:58 字數 3268 閱讀 7527

一 點睛

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 如果...