利用dnspython庫編寫域名解析查詢腳本

先安裝好dnspython

pip install dnspython

腳本正文

# -*- coding: UTF-8 -*-
#!/usr/bin/env  python

import sys
from dns import resolver

if len(sys.argv) == 2:
    #假如默認查詢有報錯,走CNAME查詢方法
    try:
        ans = resolver.query(sys.argv[1], "A")
        for dns in ans.response.answer:
            print(dns)

    except BaseException:
        ans = resolver.query(sys.argv[1], "CNAME")
        for dns in ans.response.answer:
            dns = (str(dns))
            dnstxt = dns.split(' ')
            dnstxt = dnstxt[4:]
            ans_res = resolver.query(dnstxt[0], "CNAME")
            for result in ans_res.response.answer:
                print(result)
    else:
        pass


elif len(sys.argv) == 3:
    #判斷是否輸入查詢關鍵字為CNAME,非CNAME直接走正常查詢流程
    try:
        ans = resolver.query(sys.argv[1],sys.argv[2])
        if sys.argv[2] == "CNAME" or sys.argv[2] == "cname":
            for dns in ans.response.answer:
                dns = (str(dns))
                dnstxt = dns.split(' ')
                dnstxt = dnstxt[4:]
                ans_res = resolver.query(dnstxt[0], "CNAME")
                for result in ans_res.response.answer:
                    print(result)
        else:
            for dns in ans.response.answer:
                print(dns)

    except BaseException:
        ans = resolver.query(sys.argv[1], "A")
        for dns in ans.response.answer:
            print(dns)
    else:
        pass

else:
    print("Example useage: ./dnsQuery.py baidu.com/baidu.com A|CNAME|NS|MX")

最后編輯于
?著作權歸作者所有,轉載或內容合作請聯系作者
平臺聲明:文章內容(如有圖片或視頻亦包括在內)由作者上傳并發布,文章內容僅代表作者本人觀點,簡書系信息發布平臺,僅提供信息存儲服務。

推薦閱讀更多精彩內容