當前位置:
首頁 >
Python学习笔记-DNS处理模块dnspython
發布時間:2025/4/16
33
豆豆
生活随笔
收集整理的這篇文章主要介紹了
Python学习笔记-DNS处理模块dnspython
小編覺得挺不錯的,現在分享給大家,幫大家做個參考.
DNS處理模塊dnspython
? ??dnspython是python實現的一個DNS工具包,它支持幾乎所有的記錄類型,可以用于查詢、傳輸并動態更新ZONE信息,同時支持TSIG(事務簽名)驗證消息和EDNS0(擴展DNS)。
在系統管理方面,我們可以利用其查詢功能來實現DNS服務監控以及解析結果的校驗,可以替代nslookup和dig等工具,輕松做到與現有平臺的整合。
? ? 下載dnspython模塊
[root@kurol?~]#?python3?-m?easy_install?-i?http://pypi.douban.com/simple/?dnspython????dnspython提供大量關于DNS的處理方法,最常用的是域名查詢。dnspython提供了一個DNS解析類resolver,使用它的query方法來實現域名的查詢功能。?
????qname參數為查詢的域名,rdtype參數用來指定RR資源。?
| A記錄 | 將主機名轉換成IP地址? |
| MX記錄 | 郵件交換記錄,定義郵件服務器的域名? |
| CNAME記錄 | 別名記錄,實現域名間的映射? |
| NS記錄 | 標記區域的域名服務器及授權子域? |
| PTR記錄 | 反向解析,與A記錄相反,將IP地址轉換為主機名? |
| SOA記錄 | SOA標記,一個起始授權區的定義 |
????常見的解析類型示例:
? ? ? ??A記錄(實現A記錄查詢方法源碼):??
??[root@kurol?pkg1]#?vim?dnsa.py#!/usr/bin/python3 #import?dns.resolverdomain?=?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.address)[root@kurol?pkg1]#?python3?dnsa.py?Please?input?an?domain:?www.google.com93.46.8.89????? ? MX記錄(實現MX記錄查詢方法源碼):
[root@kurol?pkg1]#?vim?mxdns.py#!/usr/bin/python3 #import?dns.resolverdomain?=?input('Please?input?an?domain:?')?#輸入域名地址 MX?=?dns.resolver.query(domain,?'MX')?#指定查詢類型為MX記錄 for?i?in?MX:?#通過response.answer方法獲取查詢回應信息????print?('MX?preference?=?',?i.preference,?'main?exchanger?=?',?i.exchange)[root@kurol?pkg1]#?python3?mxdns.py? Please?input?an?domain:?baidu.com MX?preference?=?20?main?exchanger?=?mx50.baidu.com. MX?preference?=?10?main?exchanger?=?mx.n.shifen.com. MX?preference?=?20?main?exchanger?=?mx1.baidu.com. MX?preference?=?20?main?exchanger?=?jpmx.baidu.com.????? ??NS記錄(實現NS記錄查詢方法源碼):
[root@kurol?pkg1]#?vim?nsdns.py#!/usr/bin/python3#import?dns.resolverdomain?=?input('Please?input?an?domain:?')?#輸入域名地址 ns?=?dns.resolver.query(domain,?'NS')?#指定查詢類型為NS記錄 for?i?in?ns.response.answer:?#通過response.answer方法獲取查詢回應信息???? for?j?in?i.items:?#遍歷回應信息????????print?(j.to_text())[root@kurol?pkg1]#?python3?nsdns.py? Please?input?an?domain:?qq.comn s3.qq.com. ns4.qq.com. ns1.qq.com. ns2.qq.com.????? ??CNAME記錄(實現CNAME記錄查詢方法源碼):
[root@kurol?pkg1]#?vim?cnamedns.py#!/usr/bin/python3#import?dns.resolverdomain?=?input('Please?input?an?domain:?')?#輸入域名地址 cname?=?dns.resolver.query(domain,?'CNAME')?#指定查詢類型為CNAME記錄 for?i?in?ns.response.answer:?#通過response.answer方法獲取查詢回應信息???? for?j?in?i.items:?#遍歷回應信息print?(j.to_text())轉載于:https://blog.51cto.com/kurolz/1935039
總結
以上是生活随笔為你收集整理的Python学习笔记-DNS处理模块dnspython的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: Java8 Lamdba表达式 002
- 下一篇: css3之圆角