python解析A、MX、TXT、SPF记录

这些记录一些和邮件发送smtp服务有关的一些dns概念。

邮局协议是重度使用了dns的相关协议的,了解dns协议非常重要。

python3的代码
先安包

pip install dnspython

 

直接上代码

import dns.resolver

def bytetostring(bv):
    sv = bv.decode()
    return sv

def getSPFKey(domain):
    spf = 'spf' + "." + domain
    return spf

def getSPFValue(domain):
    answersSPF = dns.resolver.resolve(getSPFKey(domain), 'TXT')
    for rdata in answersSPF:
        for txt_string in rdata.strings:
            txt_string = bytetostring(txt_string)
            return txt_string

def getTvalue(domain):
    answersTXT = dns.resolver.resolve(domain, 'TXT')
    for tdata in answersTXT:
        for txt_string in tdata.strings:
            txt_string = bytetostring(txt_string)
            return txt_string

def getMXvalue(domain):
    resultMX = dns.resolver.resolve(domain, 'MX')
    for exdata in resultMX:
        res = exdata.to_text()
        av = res.split(' ')
        return av[1]

def getAvalue(domain):
    resultA = dns.resolver.resolve(domain, 'A')
    for ip in resultA:
        return ip.to_text()

需要注意的是 之前的代码都是 dns.resolver.query 今再看,query有个删除线。但是还是能运行。输出提示 让用dns.resolver.resolve这个方法替换之
再就是没有做try…except判断 如果解析有问题就会报错了

A 记录不做解释了
MX 记录 唤作 邮件交换记录 (简单的说,收件收发信得有这个解析)
TXT
SPF

主机差评君首发于zhuji188.com,转发请标明来源https://zhuji188.com/267.html
THE END
分享
二维码
< <上一篇
下一篇>>