使用dnspython进行 update

以DNSKEY 为例

update 密钥为 tsig


k ={'your-key-name', ' your-key-content-string'} #构建tsig key 的键值对词典


keyRing = dns.tsigkeyring.from_text(k)#使用该键值对词典构建tsig key的对象


#用tsig key 和 待update的目标域 如 test.com 来初始化Update对象。

#key algorithm参数,默认是hmac-md5,具体参数取值可以参见dns/tsig.py 

#如果密钥的algorithm未指定正确或密钥不匹配,会报BadPeerKey 错误

myupdate = dns.update.Update("your-arget-zone ",keyring = keyRing , keyalgorithm = ''your-tsig-key-algorithm")

#构造dnskey对象

dnskey = dns.rdata.from_text(dns.rdataclass.IN,

 dns.rdatatype.DNSKEY,

dns.tokenizer.Tokenizer("%d %d %d %s"% (keyflag, keyprotocal,keyalgorithm,keycontent))

)

#将dnskey加入update对象,如果是add操作即

myupdate.add("target-domain-name", TTL, dnskey)

#如果是delete操作

myupdate.delete("target-domain-name", dnskey)


#最后调用query的tcp 或udp 方法发送update

response = dns.query.tcp(myupdate, "your-target-server-ip ")



你可能感兴趣的:(dns)