企业🤖AI智能体构建引擎,智能编排和调试,一键部署,支持私有化部署方案 广告
dns模块用于解析DNS,属于第三方模块 [常用例子][1] ### 安装dnspython ``` pip install dnspython ``` ### 查询 #### 简单查询 #### 查询A记录, CNAME ~~~ from dns import resolver from dns import rdatatype answers = resolver.query('www.mi.com', rdatatype.A) for rdata in answers: print 'Host', 'has preference', rdata ~~~ #### 自定义查询 ~~~ from dns import query, message, rdatatype mq = message.make_query('www.qq.com', rdatatype.A) qt = query.tcp(qm, '8.8.8.8') qt.answer #属性 qt.to_text() #方法 ~~~ 使用tcp查询较稳定 ### 更新(网络) ~~~ from dns import query, update, tsigkeyring keyring = tsigkeyring.from_text({'dnskey': 'JpNuotwlF5yvOIfF5TOwdwzQgytsx165CNcldBmlaWyoM8iq9TzKX2Wy e0waWesCUz9sBUTEmBntg6uLR8KCMw=='}) """(zone, keyring)""" gx = update.Update('hi.com.', keyring=keyring) """(zone, ttl, type, ip)""" gx.add('t.hi.com.', 300, 'a', '1.2.3.7') response = query.tcp(gx, '127.0.0.1') ~~~ ### 更新(猿课) ~~~ from dns import tsigkeyring, query, rdataset, rdata, rdatatype, rdataclass, update # 生成钥匙 keyring = tsigkeyring.from_text({'dnskey': 'tr6mcMrF3nCloG2nUBRo4C7k9pnVcjmqfNVa5kHLerZYOW7Xes/IW5GK yQMFYOgdZfuevjOlHJjg1h0qVn7k7w=='}) # 生成更新 gx = update.Update('hi.com', keyring=keyring) # rdata.from_text(rdclass, rdtype, tok) # rdata_list rdata_list = [rdata.from_text(rdataclass.IN, rdatatype.A, '1.1.1.1'),] # rdata_set rdata_set = rdataset.from_rdata_list(60, rdata_list) ~~~ #### add ~~~ # 增加 gx.add('s.hi.com.', rdata_set) # 写入文件 query.tcp(gx, '127.0.0.1') ~~~ #### delete ~~~ 删除 gx.delete('s.hi.com.', rdata_set) # 写入文件 query.tcp(gx, '127.0.0.1') ~~~ #### replace ~~~ 删除 gx.replace('s.hi.com.', rdata_set) # 写入文件 query.tcp(gx, '127.0.0.1') ~~~ [1]:http://www.dnspython.org/examples.html