class QDnsLookup#

QDnsLookup 类表示DNS查找。更多

Inheritance diagram of PySide6.QtNetwork.QDnsLookup

摘要#

属性#

  • error - 如果DNS查找失败,则发生的错误类型,或无错误

  • errorString - 如果DNS查找失败,错误的人类可读描述

  • name - 要查找的名称

  • nameserver - 用于DNS查找的nameserver

  • nameserverPort - 用于DNS查找的nameserver的端口号

  • type - DNS查找的类型

方法#

槽函数#

信号#

注意

本说明可能包含自动从C++翻译到Python的代码片段。我们始终欢迎对代码片段翻译的贡献。如果您发现翻译存在问题,您也可以通过在https:/bugreports.qt.io/projects/PYSIDE创建工单来告诉我们。

详细介绍#

警告

本节包含自动从C++翻译到Python的代码片段,可能包含错误。

QDnsLookup 使用操作系统提供的机制来执行DNS查找。要执行查找,您需要指定一个 nametype,然后调用 lookup() 槽。完成时将触发 finished() 信号。

例如,您可以使用以下方法确定XMPP聊天客户端应连接到给定域的哪些服务器:

def lookupServers(self):

    # Create a DNS lookup.
    dns = QDnsLookup(self)
    dns.finished.connect(self.handleServers)
    # Find the XMPP servers for gmail.com
    dns.setType(QDnsLookup.SRV)
    dns.setName("_xmpp-client._tcp.gmail.com")
    dns.lookup()

请求完成后,您可以使用以下方法处理结果:

def handleServers(self):

    # Check the lookup succeeded.
    if dns.error() != QDnsLookup.NoError:
        qWarning("DNS lookup failed")
        dns.deleteLater()
        return

    # Handle the results.
    records = dns.serviceRecords()
    for record in records:
        ...

    dns.deleteLater()

注意

如果您只想找到与主机名相关联的IP地址(或与IP地址相关联的主机名),请使用 QHostInfo 类代替。

class Error#

表示在DNS查找处理过程中发现的全部可能的错误条件。

常量

描述

QDnsLookup.NoError

无错误条件。

QDnsLookup.ResolverError

初始化系统DNS解析器时发生了错误。

QDnsLookup.OperationCancelledError

使用abort()方法终止了查找。

QDnsLookup.InvalidRequestError

请求的DNS查找不合法。

QDnsLookup.InvalidReplyError

从服务器返回的回复无效。

QDnsLookup.ServerFailureError

服务器在处理请求时遇到内部错误(SERVFAIL)。

QDnsLookup.ServerRefusedError

由于安全或策略原因,服务器拒绝处理请求(REFUSED)。

QDnsLookup.NotFoundError

请求的域名不存在(NXDOMAIN)。

QDnsLookup.TimeoutError

服务器未及时响应或未在规定时间内回复(自6.6版本起)。

class Type#

表示执行了哪种类型的DNS查找。

常量

描述

QDnsLookup.A

IPv4地址记录。

QDnsLookup.AAAA

IPv6地址记录。

QDnsLookup.ANY

任何记录。

QDnsLookup.CNAME

规范名称记录。

QDnsLookup.MX

邮件交换记录。

QDnsLookup.NS

域名服务器记录。

QDnsLookup.PTR

指针记录。

QDnsLookup.SRV

服务记录。

QDnsLookup.TXT

文本记录。

注意

当使用from __feature__ import true_property时,可以直接使用属性,否则通过访问函数来实现。

property error: QDnsLookup.Error#

此属性存储在DNS查找失败时发生的错误类型,或存储NoError

访问函数
property errorString: str#

此属性存储在DNS查找失败时的人读错误描述。

访问函数
property name: str#

此属性存储要查找的名称。

如果要查找的名称为空,则QDnsLookup将尝试解析DNS的根域名。此查询通常使用type设置为NS

注意

名称将使用IDNA进行编码,这意味着它不适用于查询符合DNS-SD规范的SRV记录。

访问函数
属性 nameserver: QHostAddress#

此属性用于持有用于DNS查找的名称服务器。

访问函数
属性 nameserverPort: int#

此属性用于持有用于DNS查找的名称服务器的端口号。

注意

将端口号设置为除默认(53)以外的任何值可能导致名称解析失败,具体取决于操作系统的限制和防火墙。值得注意的是,QDnsLookup使用的Windows API无法处理备用端口号。

访问函数
属性 type: QDnsLookup.Type#

此属性用于持有DNS查找的类型。

访问函数
__init__(type, name, nameserver[, parent=None])#
参数:

创建一个用于查询记录类型为 typenameQDnsLookup 对象,使用运行在默认 DNS 端口的 DNS 服务器 nameserver,并将 parent 设置为父对象。

__init__(type, name, nameserver, port[, parent=None])
参数:

创建一个用于查询记录类型为 typenameQDnsLookup 对象,使用在端口 port 运行的 DNS 服务器 nameserver,并将 parent 设置为父对象。

注意

将端口号设置为除默认(53)以外的任何值可能导致名称解析失败,具体取决于操作系统的限制和防火墙。值得注意的是,QDnsLookup使用的Windows API无法处理备用端口号。

__init__([parent=None])
参数:

parentQObject

创建一个 QDnsLookup 对象,并将 parent 设置为父对象。

属性的 type 默认为 A

__init__(type, name[, parent=None])
参数:

创建一个针对给定 typenameQDnsLookup 对象,并将 parent 设置为父对象。

abort()#

中止 DNS 查询操作。

如果查询已完成,则不执行任何操作。

canonicalNameRecords()#
返回类型:

. QDnsDomainNameRecord 的列表

返回与此次查找相关的规范名称记录列表。

error()#
返回类型:

错误

属性 error 的获取器。

errorString()#
返回类型:

str

属性 errorString 的获取器。

finished()#

当响应完成处理时发出此信号。

属性 error 的通知信号。

hostAddressRecords()#
返回类型:

. QDnsHostAddressRecord 列表

返回与此查找相关的主机地址记录列表。

isFinished()#
返回类型:

bool

返回响应是否已完成或被取消。

lookup()#

执行DNS查找。

完成时发出 finished() 信号。

mailExchangeRecords()#
返回类型:

. QDnsMailExchangeRecord 列表

返回与此次查找相关的邮件交换记录列表。

记录根据 RFC 5321 进行排序,因此如果您使用它们连接服务器,应按列表中的顺序尝试。

name()#
返回类型:

str

另请参阅

setName()

属性 name 的获取器。

nameChanged(name)#
参数:

name – str

当查找的 name 变化时发出此信号。 name 是新的查找名称。

属性 name 的通知信号。

nameServerRecords()#
返回类型:

. QDnsDomainNameRecord 的列表

返回与此次查找相关的域名服务器记录列表。

nameserver()#
返回类型:

QHostAddress

另请参阅

setNameserver()

属性 nameserverᅟ 的获取器。

nameserverChanged(nameserver)#
参数:

nameserverQHostAddress

属性 nameserverᅟ 的通知信号。

nameserverPort()#
返回类型:

int

另请参阅

setNameserverPort()

属性 nameserverPortᅟ 的获取器。

nameserverPortChanged(port)#
参数:

port – int

属性 nameserverPortᅟ 的通知信号。

pointerRecords()#
返回类型:

. QDnsDomainNameRecord 的列表

返回与此查找关联的指针记录列表。

serviceRecords()#
返回类型:

.列表 QDnsServiceRecord

返回与此查找关联的服务记录列表。

记录根据 RFC 2782 排序,因此如果您使用它们连接到服务器,请按列表顺序尝试它们。

setName(name)#
参数:

name – str

另请参阅

name()

属性 nameᅟ 的设置器。

setNameserver(nameserver)#
参数:

nameserverQHostAddress

另请参阅

nameserver()

属性 nameserverᅟ 的设置器。

setNameserver(nameserver, port)
参数:

将名称服务器设置为 nameserver 并将端口号设置为 port

注意

将端口号设置为除默认(53)以外的任何值可能导致名称解析失败,具体取决于操作系统的限制和防火墙。值得注意的是,QDnsLookup使用的Windows API无法处理备用端口号。

另请参阅

nameserver nameserverPort

setNameserverPort(port)#
参数:

port – int

另请参阅

nameserverPort()

属性 nameserverPortᅟ 的设置器。

setType(arg__1)#
参数:

arg__1Type

另请参阅

type()

设置属性 type .

textRecords()#
返回类型:

. QDnsTextRecord 列表

返回与此查找相关的文本记录列表。

type()#
返回类型:

类型

另请参阅

setType()

获取属性 type .

typeChanged(type)#
参数:

typeType

当查找 type 发生变化时发出此信号。 type 是新的查找类型。

type 属性的通知信号。