dnspython是在python下的dns解析文件。它支持幾乎所有的記錄類型,可以用于查詢、傳輸并動態(tài)更新ZONE信息,同時支持TSIG(事務(wù)簽名)驗證消息和EDNS0(擴展DNS)。小編這里給大家?guī)韜indows和linux版本兩種版本,需要的下!
dnspython是什么
dnspython是Python的一個DNS工具包。它支持幾乎所有的記錄類型。它可以用于查詢、區(qū)域轉(zhuǎn)移和動態(tài)更新。它支持TSIG驗證消息和EDNS0。
dnspython提供了高和低水平訪問DNS。高水平類執(zhí)行查詢數(shù)據(jù)給定的名稱、類型和類,并返回一組回答。低水平類允許DNS區(qū)域的直接操縱,信息,名字,和記錄。
看到幾個dnspython可用的方法,訪問頁面的示例。
dnspython起源在Nominum那里發(fā)達促進DNS軟件的測試。Nominum慷慨地允許它在bsd風(fēng)格的開源許可證,并幫助支持其未來發(fā)展通過繼續(xù)采用作者:)。
dnspython安裝使用方法
這里采用源碼的安裝方式,最新版本為1.12.0,如下:
# http://www.dnspython.org/kits/1.12.0/dnspython-1.12.0.tar.gz
# tar -zxvf dnspython-1.12.0.tar.gz
# cd dnspython-1.12.0
# python setup.py install
對域名進行操作
域名是 DNS 系統(tǒng)中最基本的對象。
dnspython 通過類 dns.name.Name 提供了對域名信息進行封裝。
對于類 dns.name.Name 的實例,我們可以進行一些操作。
請看下面的例子(已經(jīng)準備好了交互式 Python 環(huán)境了嗎):
>>> import dns.name
>>> n1 = dns.name.from_text('google.com')
>>> print type(n1)
<class 'dns.name.Name'>
首先,我們導(dǎo)入模塊 dns.name。
通過函數(shù) dns.name.from_text(),我們很方便的從字符串 google.com 創(chuàng)建了一個類 dns.name.Name 的實例。
隨后,我們通過 type() 函數(shù)證實了這一點。
讓我們再創(chuàng)建幾個類 dns.name.Name 的實例。
>>> n0 = dns.name.from_text('com')
>>> n2 = dns.name.from_text('www.google.com')
>>> n3 = dns.name.from_text('www.google.cn')
類 dns.name.Name 的方法 is_subdomain() 和 is_superdomain 可以幫助我們判讀一個域名是否是另一個域名的子域或者超域。
>>> n0.is_superdomain(n2)
True
>>> n0.is_superdomain(n3)
False
>>> n2.is_subdomain(n1)
True
>>> n3.is_subdomain(n1)
False
>>> n1.is_subdomain(n1)
True
>>> n1.is_superdomain(n1)
True
通過上面的例子我們看到,com 是 www.google.com 的 super domain,不是 www.google.cn 的 super domain。反過來說,www.google.com是 com 的 subdoamin 成立,而 www.google.cn 是 com 的 subdomain 不成立。
我們還意識到一個 dns.name.Name 總是自己的 super domain 和 subdomain。
讓我們看看如何處理域名間的相對關(guān)系:
>>> r1 = n2.relativize(n1)
>>> print r1
www
>>> r2 = n2 - n1
>>> r1 == r2
True
我們看到,通過 relativize() 方法可以獲得一個域名相對其 superdomain 的部分,例如 n2 相對 n1 的部分是 www。
我們也可以使用減(-)操作得到等價結(jié)果。那么,是否可以使用加(+)操作處理域名呢?
>>> r1 + n1 == n2
True
答案是肯定的。
dnspython 增刪改查記錄
操作
dic.clear() 清除字典
dic.keys() 獲取鍵的列表
dic.values() 獲取值的列表
dic.copy() 復(fù)制字典
dic.pop(k) 刪除鍵k
dic.get(k) 得到鍵k的值
dic.update() 更新成員,若成員不在,相當(dāng)于添加
dic.items() 獲得由鍵和值組成的列表
dic.popitem() 隨機刪除一個鍵值對,并將其返回
實例
d = {'name':'LBJ','age':23,'addr':'BeiJing'}
print 'd=',d #顯示結(jié)果:d= {'age': 23, 'name': 'LBJ', 'addr': 'BeiJing'}
d.clear() ;
print 'd=',d #顯示結(jié)果:d= {}
d.update({'name':'LBJ','age':23,'addr':'BeiJing'})
print 'd=',d #顯示結(jié)果:d= {'age': 23, 'name': 'LBJ', 'addr': 'BeiJing'}
print 'd.keys()=',d.keys() #顯示結(jié)果:d.keys()= ['age', 'name', 'addr']
print 'd.values()=',d.values() #顯示結(jié)果:d.values()= [23, 'LBJ', 'BeiJing']
d2 = d.copy()
print 'd2=',d2 #顯示結(jié)果:d2= {'age': 23, 'name': 'LBJ', 'addr': 'BeiJing'}
print 'd.popitem()=',d.popitem() #顯示結(jié)果:d.popitem()= ('age', 23)
print 'd=',d #顯示結(jié)果:d= {'name': 'LBJ', 'addr': 'BeiJing'}
- PC官方版
- 安卓官方手機版
- IOS官方手機版