使用dnspython解析DNS
dnspython模塊介紹
dnspython是Python實(shí)現(xiàn)的一個(gè)DNS工具集,它支持幾乎所有的記錄類型,可以用于查詢、傳輸并動(dòng)態(tài)更新ZONE信息,同時(shí)支持TSIG(事務(wù)簽名)驗(yàn)證消息和EDNS0(擴(kuò)展DNS)。使用dnspython可以代替Linux命令行下的nslookup以及dig等工具
dnspython的安裝
pip install dnspython
使用dnspython進(jìn)行域名解析
在所有API中,最常使用的是域名查詢。dnspython提供了一個(gè)DNS解析類resolver,使用它的query方法可以實(shí)現(xiàn)域名的查詢功能。
dns.resolver.query(qname, rdtype=1, rdclass=1, tcp=False, source=None, raise_on_no_answer=True, source_port=0)
query方法各參數(shù)的含義如下:
- qname:查詢的域名
- rdtype:指定RR資源
- rdclass:網(wǎng)絡(luò)類型
- tcp:指定查詢是否啟用tcp協(xié)議
- source:查詢?cè)吹牡刂?/li>
- source_port:查詢?cè)吹亩丝?/li>
- raise_on_no_answer:指定查詢無(wú)應(yīng)答時(shí)是否觸發(fā)異常,默認(rèn)為True