DNS處理模塊dnspython

1、介紹

官網:http://www.dnspython.org/html

  https://pypi.org/project/dnspython/python

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

  dnspython提供對DNS的高級和低級訪問。高級別類對給定名稱,類型和類的數據執行查詢,並返回答案集。低級別容許直接操做DNS區域,消息,名稱和記錄。網絡

  使用dnspython的幾種方法,官方示例(點擊查看)tcp

2、dnspython模塊安裝

CentOS工具

[root@localhost test]# pip3 install dnspython
Collecting dnspython
  Downloading https://files.pythonhosted.org/packages/a6/72/209e18bdfedfd78c6994e9ec96981624a5ad7738524dd474237268422cb8/dnspython-1.15.0-py2.py3-none-any.whl (177kB)
    100% |████████████████████████████████| 184kB 27kB/s
Installing collected packages: dnspython
Successfully installed dnspython-1.15.0

Mac OSspa

MacBook-Pro:~ h$ pip3 install dnspython
Collecting dnspython
  Downloading https://files.pythonhosted.org/packages/a6/72/209e18bdfedfd78c6994e9ec96981624a5ad7738524dd474237268422cb8/dnspython-1.15.0-py2.py3-none-any.whl (177kB)
    100% |████████████████████████████████| 184kB 10kB/s 
Installing collected packages: dnspython
Successfully installed dnspython-1.15.0

3、模塊域名解析方法詳解

  dnspython模塊提供了大量的DNS處理方法,最經常使用的方法是域名查詢。dnspython提供了一個DNS解析器類——resolver,使用它的query方法來實現域名的查詢功能。query方法的定義以下:code

query(self,qname,rdtype=1,rdclass=1,tcp=False,source=None,raise_on_no_answer=True,source_port=0)

 其中,qname參數爲查詢的域名。retype參數用來指定RR資源的類型,經常使用的有如下幾種:htm

A記錄,將主機名轉換成IP地址;
MX記錄,郵件交換記錄,定義郵件服務器的域名;
CNAME記錄,指別名記錄,實現域名間的映射;
NS記錄,標記區域的域名服務器及受權子域;
PTR記錄,反向解析,與A記錄相反,將IP轉換成主機名;
SOA記錄,SOA標記,一個起始受權區的定義。

rdclass參數用於指定網絡類型,可選的值有IN、CH與HS,其中IN爲默認,使用最普遍。TCP參數用於指定查詢是否啓用TCP協議,默認爲False(不啓用)。source與source_port參數做爲指定查詢源地址與端口,默認值爲查詢設備IP地址和0.raise_on_no_answer參數用於指定當查詢無應答時是否觸發異常,默認爲True。blog

相關文章
相關標籤/搜索