gevent.resolver.dnspython --纯Python主机名解析程序#

class Resolver(hub=None)[源代码]#

基类:AbstractResolver

一个 experimental 使用的解析器 dnspython

这通常比默认的线程解析器慢(除非有缓存命中,在这种情况下,它可以快得多)。它通常比C-ARES解析器快得多。当尝试更多并发解决方案时,它往往具有很好的伸缩性。

在Python2下,如果 idna 包安装后,此解析程序可以解析系统解析程序无法解析的Unicode主机名。

备注

does not 使用dnspython的默认解析器对象,或与共享任何类 import dns 。对象的单独副本被导入,以便能够在非猴子修补的进程中运行。解析器对象的文档仍然适用。

我们使用的解析器可以作为 resolver 此对象的属性(通常 gevent.get_hub().resolver.resolver )。

小心

许多关于DNS结果的警告都适用于此处的文档 gevent.resolver.ares.Resolver 。此外,对传递到的IPv6地址中的符号作用域ID的处理 getaddrinfo 显示出一些不同之处。

在PyPy上, getnameinfo 可以在CPython引发 socket.error ,GEvent的DNSPython解析器也引发 socket.error

小心

这个解析器是试验性的。它可能在将来被移除或修改。一如既往,反馈是受欢迎的。

在 1.3a2 版本加入.

在 20.5.0 版本发生变更: 提出的错误现在与标准库解析器提出的错误更加一致。

本地主机和广播名称的处理现在更加一致。

close()[源代码]#

释放此对象持有的资源。

定义资源的子类应该重写。

在 22.10.1 版本加入.

property resolver#

我们使用的dnspython解析器对象。

此对象具有几个有用的属性,可用于调整DNS系统的行为:

  • cache is a dns.resolver.LRUCache. Its maximum size can be configured by calling resolver.cache.set_max_size()

  • nameservers 控制要与哪些名称服务器通信

  • lifetime 为每个单独的查询配置超时。