加入收藏 | 设为首页 | 会员中心 | 我要投稿 云计算网_汕头站长网 (https://www.0754zz.com/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 服务器 > 搭建环境 > Linux > 正文

python dns解析文 件(dnspython)1.12

发布时间:2023-01-13 12:49:07 所属栏目:Linux 来源:
导读:  dnspython是在python下的dns解析文件。它支持几乎所有的记录类型,可以用于查询、传输并动态更新ZONE信息,同时支持TSIG(事务签名)验证消息和EDNS0(扩展DNS)。知识兔小编这里给大家带来windows和linux版本两
  dnspython是在python下的dns解析文件。它支持几乎所有的记录类型,可以用于查询、传输并动态更新ZONE信息,同时支持TSIG(事务签名)验证消息和EDNS0(扩展DNS)。知识兔小编这里给大家带来windows和linux版本两种版本,需要的下!
 
  dnspython是什么
 
  知识兔
 
  dnspython是Python的一个DNS工具包。它支持几乎所有的记录类型。它可以用于查询、区域转移和动态更新。它支持TSIG验证消息和EDNS0。
 
  dnspython分享了高和低水平访问DNS。高水平类执行查询数据给定的名称、类型和类,并返回一组回答。低水平类允许DNS区域的直接操纵,信息,名字,和记录。
 
  看到几个dnspython可用的方法,访问页面的示例。
 
  dnspython起源在Nominum那里发达促进DNS软件的测试。Nominum慷慨地允许它在bsd风格的开源许可证,并帮助支持其未来发展通过继续采用作者:)。
 
  dnspython安装使用方法
 
  知识兔
 
  这里采用源码的安装方式,最新版本为1.12.0,如下:
 
  # 聽
 
  # tar -zxvf dnspython-1.12.0.tar.gz 聽
 
  # cd dnspython-1.12.0 聽
 
  # python setup.py install聽
 
  对域名进行操作
 
  域名是 DNS 系统中最基本的对象。
 
  dnspython 通过类 dns.name.Name 分享了对域名信息进行封装。
 
  对于类 dns.name.Name 的实例,我们可以进行一些操作。
 
  请看下面的例子(已经准备好了交互式 Python 环境了吗):
 
  >>> import dns.name
 
  >>> n1 = dns.name.from_text('google.com')
 
  >>> print type(n1)
 
  首先,我们导入模块 dns.name。
 
  通过函数 dns.name.from_text(),我们很方便的从字符串 google.com 创建了一个类 dns.name.Name 的实例。
 
  随后,我们通过 type() 函数证实了这一点。
 
  让我们再创建几个类 dns.name.Name 的实例。
 
  >>> n0 = dns.name.from_text('com')
 
  >>> n2 = dns.name.from_text('www.google.com')
 
  linux 域名解析_国外的域名 dns解析_域名反解析
 
  >>> n3 = dns.name.from_text('www.google.cn')
 
  类 dns.name.Name 的方法 is_subdomain() 和 is_superdomain 可以帮助我们判读一个域名是否是另一个域名的子域或者超域。
 
  >>> n0.is_superdomain(n2)
 
  True
 
  >>> n0.is_superdomain(n3)
 
  False
 
  >>> n2.is_subdomain(n1)
 
  True
 
  >>> n3.is_subdomain(n1)
 
  False
 
  >>> n1.is_subdomain(n1)
 
  True
 
  >>> n1.is_superdomain(n1)
 
  True
 
  通过上面的例子我们看到,com 是 的 super domain,不是 的 super domain。反过来说,是 com 的 subdoamin 成立,而 是 com 的 subdomain 不成立。
 
  我们还意识到一个 dns.name.Name 总是自己的 super domain 和 subdomain。
 
  让我们看看如何处理域名间的相对关系:
 
  >>> r1 = n2.relativize(n1)
 
  >>> print r1
 
  www
 
  >>> r2 = n2 - n1
 
  >>> r1 == r2
 
  True
 
  我们看到linux 域名解析,通过 relativize() 方法可以获得一个域名相对其 superdomain 的部分,例如 n2 相对 n1 的部分是 www。
 
  我们也可以使用减(-)操作得到等价结果。那么,是否可以使用加(+)操作处理域名呢?
 
  >>> r1 + n1 == n2
 
  True
 
  答案是肯定的。
 
  国外的域名 dns解析_域名反解析_linux 域名解析
 
  dnspython 增删改查记录
 
  知识兔
 
  操作
 
  dic.clear() 清除字典
 
  dic.keys() 获取键的列表
 
  dic.values() 获取值的列表
 
  dic.copy() 复制字典
 
  dic.pop(k) 删除键k
 
  dic.get(k) 得到键k的值
 
  dic.update() 更新成员,若成员不在,相当于添加
 
  dic.items() 获得由键和值组成的列表
 
  dic.popitem() 随机删除一个键值对,并将其返回
 
  实例
 
  d = {'name':'LBJ','age':23,'addr':'BeiJing'}
 
  print 'd=',d #显示结果:d= {'age': 23, 'name': 'LBJ', 'addr': 'BeiJing'}
 
  d.clear() ;
 
  print 'd=',d #显示结果:d= {}
 
  d.update({'name':'LBJ','age':23,'addr':'BeiJing'})
 
  print 'd=',d #显示结果:d= {'age': 23, 'name': 'LBJ', 'addr': 'BeiJing'}
 
  print 'd.keys()=',d.keys() #显示结果:d.keys()= ['age', 'name', 'addr']
 
  print 'd.values()=',d.values() #显示结果:d.values()= [23, 'LBJ', 'BeiJing']
 
  d2 = d.copy()
 
  print 'd2=',d2 #显示结果:d2= {'age': 23, 'name': 'LBJ', 'addr': 'BeiJing'}
 
  print 'd.popitem()=',d.popitem() #显示结果:d.popitem()= ('age', 23)
 
  print 'd=',d #显示结果:d= {'name': 'LBJ', 'addr': 'BeiJing'}
 

(编辑:云计算网_汕头站长网)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!