Python DNS 處理模組 dnspython

來源:互聯網
上載者:User

標籤:python   DNS   Linux   

Python DNS 處理模組 dnspython

以下列舉了DNSPython模組中常用方法,借鑒於書籍《Python 自動化營運:技術與最佳實務》

dnspython提供大量關於DNS的處理方法,最常用的是網域名稱查詢。dnspython提供了一個DNS解析類resolver,使用它的query方法來實現網域名稱的查詢功能。
query(self, qname, rdtype = 1, rdclass = 1, tcp = False, source = None, raise_on_no_answer = True, source_port = 0)
qname參數為查詢的網域名稱,rdtype參數用來指定RR資源。
A記錄:將主機名稱轉換成IP地址
MX記錄:郵件交換記錄,定義郵件伺服器的網域名稱
CNAME記錄:別名記錄,實現網域名稱間的映射
NS記錄:標記地區的網域名稱伺服器及授權子域
PTR記錄:反向解析,與A記錄相反,將IP地址轉換為主機名稱
SOA記錄:SOA標記,一個起始授權區的定義
rdclass指定網路類型,IN,CH,HS, IN預設
tcp指定查詢是否啟用TCP協議(預設不啟用)
source 與source_port指定查詢源的地址與連接埠,預設為查詢裝置的IP地址和0
raise_on_no_answer指定查詢無應答時是否觸發異常,預設為True

以下是代碼

#! /usr/bin/env python
# -- coding:utf-8 -*-**
import dns.resolver

Domain = raw_input(‘Please input an domain:‘)
class DNS:
def Get_A(self,Domain): # 查詢A記錄
print(‘輸出A記錄‘)
try:
A = dns.resolver.query(Domain, ‘A‘)
for i in A.response.answer:
for j in i.items:
print(j.address)
except Exception as e:
print(‘未查詢到A記錄‘)

def Get_MX(self,Domain): # 查詢MX記錄
print(‘輸出MX記錄‘)
try:
MX = dns.resolver.query(Domain, ‘MX‘)
for i in MX:
print ‘MX preference =‘, i.preference, ‘ mail exchanger=‘, i.exchange
except Exception as e:
print(‘未查詢到MX記錄‘)

def Get_NS(self,Domain): # 查詢NS記錄
print(‘輸出NS記錄‘)
try:
ns = dns.resolver.query(Domain, ‘NS‘)
for i in ns.response.answer:
for j in i.items:
print j.to_text()
except Exception as e:
print(‘未查詢到NS記錄‘)

def Get_CNAME(self,Domain): # 查詢CNAME記錄
print(‘輸出CNAME記錄‘)
try:
cname = dns.resolver.query(Domain, ‘CNAME‘)
for i in cname.response.answer:
for j in i.items:
print j.to_text()
except Exception as e:
print(‘未查詢到CNAME‘)

if name ==‘main‘:
d = DNS()
d.Get_A(Domain)
print(‘----------------‘)
d.Get_MX(Domain)
print(‘----------------‘)
d.Get_NS(Domain)
print(‘----------------‘)
d.Get_CNAME(Domain)
print(‘----------------‘)

Python DNS 處理模組 dnspython

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.