python學習-dnspython

dnspython是Python的DNS工具包。它支持幾乎全部的記錄類型。它能夠用於查詢,區域傳輸和動態更新。它支持TSIG認證消息和EDNS0。python

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.resolver
domain = 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.resolver
domain = input('Please input an domain: ') #指定域名爲163.com
MX = 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.resolver
domain = input('Please input an domain: ') #只限輸入一級域名,如163.com
ns = dns.resolver.query(domain, 'NS')     #指定查詢類型爲NS
for i in ns.response.answer:
     for j in i.items:
          print(j.to_text())

'''
常見的解析類型-CNAME記錄
'''
import dns.resolver
domain = 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())
相關文章
相關標籤/搜索