標籤:dnspython
dnspython是Python的DNS工具包。它支援幾乎所有的記錄類型。它可以用於查詢,地區傳輸和動態更新。它支援TSIG認證訊息和EDNS0。
dnspython提供對DNS的進階和低級訪問。進階別類對給定名稱,類型和類的資料執行查詢,並返回答案集。低層級類允許直接操作DNS地區,訊息,名稱和記錄。
官方網站:http://www.dnspython.org/
#! /env python3#coding=utf-8'''模組網域名稱解析方法:dnspthon提供了一個DNS解析器類-resolver,使用query方法實現網域名稱查詢功能方法定義如下:query(self,qname,rdtpye=1,rdclass=1,tcp=False,source=None,rasie_on_no_answer=True,source_port=0)其中qname參數為查詢的網域名稱。rdtpye參數指定RR資源類型,常用有以下幾種A記錄,將主機名稱轉換為IP地址;MX記錄,郵件交換器記錄,定義郵件伺服器的網域名稱;CNAME記錄,指別名記錄,實現網域名稱間的映射;NS記錄,標記地區的網域名稱伺服器及授權子域;PTR記錄,方向解析,與A記錄相反,將IP轉換為主機名稱;SOA記錄,SOA標記,一個起始授權區的定義rdclass參數用於指定網路類型,可選的值有IN,CH與HS,其中IN為預設,使用最廣泛tcp參數用於指定查詢是否啟用了TCP協議,預設是 False不啟用。source與source_port參數作為指定查詢的源地址與連接埠,預設為查詢裝置IP地址和0.rasie_on_on_answer=True參數指定當查詢無應答時是否觸發異常''''''常見的解析類型-A記錄,實現A記錄查詢方法'''import dns.resolverdomain = input('Please input an domain: ') #輸入欄位名地址A = dns.resolver.query(domain, 'A') #指定查詢類型為A記錄for i in A.response.answer: #通過response.answer方法擷取查詢回應資訊 for j in i.items: #遍曆回應資訊 print (j)'''常見的解析類型-MX記錄'''import dns.resolverdomain = input('Please input an domain: ') #指定網域名稱為163.comMX = dns.resolver.query(domain, 'MX') #指定查詢類型為MX記錄for i in MX: #遍曆回應結果,輸出MX記錄的preference及exchanger資訊 print ('MX preference =', i.preference, 'mail exchanger =', i.exchange)'''常見的解析類型-NS記錄'''import dns.resolverdomain = input('Please input an domain: ') #只限輸入頂層網域,如163.comns = dns.resolver.query(domain, 'NS') #指定查詢類型為NSfor i in ns.response.answer: for j in i.items: print(j.to_text())'''常見的解析類型-CNAME記錄'''import dns.resolverdomain = input('Please input an domain: ') #指定查詢類型為CNAME記錄cname = dns.resolver.query(domain, 'CNAME') #結果將回應cname後的目標資訊for i in cname.response.answer: for j in i.items: print (j.to_text())
python學習-dnspython