常見解析型別示例說明
阿新 • • 發佈:2018-12-31
一、概要
常見的DNS解析型別包括A、MX、NS、CNAME等。利用dnspython的dns.resolver。query方法可以簡單實現這些DNS型別的查詢,為後面要實現的功能提供資料來源,比如對一個使用DNS輪詢業務的域名進行可用性監控,需要得到當前的解析結果。下面一一進行介紹。
二、A記錄
實現A記錄查詢方法原始碼
#!/usr/bin/env python import dns.resolver domain = 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)
執行程式碼檢視結果,這裡以www.google.com域名為例:
[[email protected] dns_python]# python3 simple1.py Please input an domain: www.google.com31.13.84.1
三、MX記錄
實現MX記錄查詢方法
#!/usr.bin/env python import dns.resolver domain = input('Please input an domain: ') MX = dns.resolver.query(domain,'MX') #指定查詢型別為MX記錄 for i in MX: print('MX preference =',i.preference,'mail exchanger =',i.exchange)
執行程式碼檢視結果,這裡以163.com域名為例:
[[email protected] dns_python]# python3 simple2.py Please input an domain: 163.com MX preference = 10 mail exchanger = 163mx03.mxmail.netease.com. MX preference = 50 mail exchanger = 163mx00.mxmail.netease.com. MX preference = 10 mail exchanger = 163mx01.mxmail.netease.com. MX preference = 10 mail exchanger = 163mx02.mxmail.netease.com.
四、DN記錄
實現DS記錄查詢方法原始碼:
#!/usr/bin/env python import dns.resolver domain = input('Please input an domain: ') ns = dns.resolver.query(domain,'NS') #指定查詢型別為NS記錄 for i in ns.response.answer: for j in i.items: print(i.to_text())
只限輸入一級域名,如baidu.com。如果輸入二級或多級域名,如www.baidu.com,則是錯誤的。
[[email protected] dns_python]# python3 simple3.py Please input an domain: baidu.com baidu.com. 5 IN NS dns.baidu.com. baidu.com. 5 IN NS ns3.baidu.com. baidu.com. 5 IN NS ns7.baidu.com. baidu.com. 5 IN NS ns4.baidu.com. baidu.com. 5 IN NS ns2.baidu.com. baidu.com. 5 IN NS dns.baidu.com. baidu.com. 5 IN NS ns3.baidu.com. baidu.com. 5 IN NS ns7.baidu.com. baidu.com. 5 IN NS ns4.baidu.com. baidu.com. 5 IN NS ns2.baidu.com. baidu.com. 5 IN NS dns.baidu.com. baidu.com. 5 IN NS ns3.baidu.com. baidu.com. 5 IN NS ns7.baidu.com. baidu.com. 5 IN NS ns4.baidu.com. baidu.com. 5 IN NS ns2.baidu.com. baidu.com. 5 IN NS dns.baidu.com. baidu.com. 5 IN NS ns3.baidu.com. baidu.com. 5 IN NS ns7.baidu.com. baidu.com. 5 IN NS ns4.baidu.com. baidu.com. 5 IN NS ns2.baidu.com. baidu.com. 5 IN NS dns.baidu.com. baidu.com. 5 IN NS ns3.baidu.com. baidu.com. 5 IN NS ns7.baidu.com. baidu.com. 5 IN NS ns4.baidu.com. baidu.com. 5 IN NS ns2.baidu.com.
五、CNAME記錄
實現CNAME記錄查詢方法原始碼:
#!/usr/bin/env python import dns.resolver domain = input('Please input an domain: ') cname = dns.resolver.query(domain,'CNAME') #指定查詢型別為CNAME記錄 for i in cname.response.answer: #將結果迴應cname後的目標域名 for j in i.items: print(j.to_next())