PySide6.QtNetwork.QHostInfo¶
- class QHostInfo¶
QHostInfo类提供了用于主机名查找的静态函数。更多…概要¶
方法¶
def
__init__()def
addresses()def
error()def
errorString()def
hostName()def
lookupHost()def
lookupId()def
setAddresses()def
setError()def
setErrorString()def
setHostName()def
setLookupId()def
swap()
静态函数¶
def
fromName()def
localHostName()def
lookupHost()
注意
本文档可能包含从C++自动翻译到Python的代码片段。我们始终欢迎对代码片段翻译的贡献。如果您发现翻译问题,您也可以通过在我们的https:/bugreports.qt.io/projects/PYSIDE上创建工单来告知我们。
详细描述¶
警告
本节包含从C++自动翻译到Python的代码片段,可能包含错误。
QHostInfo查找与主机名关联的IP地址,或与IP地址关联的主机名。该类提供了两个静态便捷函数:一个是异步工作并在找到主机后发出信号,另一个是阻塞并返回一个QHostInfo对象。要异步查找主机的IP地址,请调用
lookupHost(),它接受主机名或IP地址、接收器对象和槽签名作为参数,并返回一个ID。您可以通过使用查找ID调用abortHostLookup()来中止查找。示例:
# To find the IP address of qt-project.org QHostInfo::lookupHost("qt-project.org", self.printResults) # To find the host name for 4.2.2.1 QHostInfo::lookupHost("4.2.2.1", self.printResults)
当结果准备好时,槽被调用。结果存储在一个
QHostInfo对象中。调用addresses()获取主机的IP地址列表,调用hostName()获取查找的主机名。如果查找失败,
error()返回发生的错误类型。errorString()提供查找错误的人类可读描述。如果你想要一个阻塞查找,请使用
fromName()函数:info = QHostInfo.fromName("qt-project.org")
QHostInfo通过IDNA和Punycode标准支持国际化域名(IDNs)。要检索本地主机的名称,请使用静态
localHostName()函数。QHostInfo使用操作系统提供的机制来执行查找。根据 RFC 6724,不能保证会返回为域或主机注册的所有 IP 地址。注意
自 Qt 4.6.1 起,
QHostInfo使用多个线程进行 DNS 查询,而不是一个专用的 DNS 线程。这提高了性能,但与之前版本的 Qt 相比,使用lookupHost()时信号发射的顺序也有所改变。- class HostInfoError¶
此枚举描述了在尝试解析主机名时可能发生的各种错误。
常量
描述
QHostInfo.NoError
查找成功。
QHostInfo.HostNotFound
未找到主机的IP地址。
QHostInfo.UnknownError
发生了一个未知错误。
另请参阅
构造
other的副本。- __init__([lookupId=-1])
- Parameters:
lookupId – int
构造一个带有查找ID
id的空主机信息对象。另请参阅
- static abortHostLookup(lookupId)¶
- Parameters:
lookupId – int
中止具有ID
id的主机查找,该ID由lookupHost()返回。另请参阅
- addresses()¶
- Return type:
.list of QHostAddress
警告
本节包含从C++自动翻译到Python的代码片段,可能包含错误。
返回与
hostName()关联的IP地址列表。此列表可能为空。示例:
info = QHostInfo() ... if not info.addresses().isEmpty(): address = info.addresses().first() # use the first IP address
- error()¶
- Return type:
如果主机名查找失败,则返回发生的错误类型;否则返回
NoError。另请参阅
- errorString()¶
- Return type:
字符串
如果查找失败,此函数返回一个人类可读的错误描述;否则返回“未知错误”。
另请参阅
查找给定主机
name的IP地址。该函数在查找期间会阻塞,这意味着程序的执行会暂停,直到查找结果准备好。返回的查找结果在一个QHostInfo对象中。如果你传递一个字面量的IP地址给
name而不是主机名,QHostInfo将会搜索该IP的域名(即,QHostInfo将执行一个反向查找)。如果成功,返回的QHostInfo将包含解析的域名和主机名的IP地址。另请参阅
- hostName()¶
- Return type:
字符串
返回其IP地址被查找的主机的名称。
- static localDomainName()¶
- Return type:
字符串
返回此机器的DNS域。
- static localHostName()¶
- Return type:
字符串
返回此机器的主机名(如果已配置)。请注意,主机名不能保证全局唯一,特别是如果它们是自动配置的。
此函数不保证返回的主机名是完全限定域名(FQDN)。为此,请使用
fromName()将返回的名称解析为FQDN。此函数返回与 QSysInfo::machineHostName() 相同的结果。
- lookupHost(name, callable)¶
- Parameters:
name – str
callable –
PyCallable
- static lookupHost(name, receiver, member)
- Parameters:
name – str
receiver –
QObjectmember – str
- Return type:
整数
警告
本节包含从C++自动翻译到Python的代码片段,可能包含错误。
查找与主机名
name关联的IP地址,并返回查找的ID。当查找结果准备好时,会调用receiver中的槽或信号member,并传递一个QHostInfo参数。然后可以检查QHostInfo对象以获取查找结果。查找是通过单个函数调用执行的,例如:
QHostInfo::lookupHost("www.kde.org", self.lookedUp)
插槽的实现打印了查找返回的地址的基本信息,如果失败则报告错误:
def lookedUp(self, host): if host.error() != QHostInfo.NoError: print("Lookup failed:", host.errorString()) return addresses = host.addresses() for address in addresses: print("Found address:", address.toString())
如果你传递一个字面量的IP地址给
name而不是主机名,QHostInfo将会搜索该IP的域名(即,QHostInfo将执行一个反向查找)。成功后,生成的QHostInfo将包含解析的域名和主机名的IP地址。示例:QHostInfo::lookupHost("4.2.2.1", self.lookedUp)
注意
如果使用 lookupHost() 启动多个请求,则无法保证信号的发出顺序。
注意
在Qt 6.7之前的版本中,此函数将
receiver作为(非const)QObject*。- lookupId()¶
- Return type:
整数
返回此查找的ID。
- setAddresses(addresses)¶
- Parameters:
addresses – QHostAddress 的列表
将此
QHostInfo中的地址列表设置为addresses。另请参阅
- setError(error)¶
- Parameters:
错误 –
HostInfoError
将此
QHostInfo的错误类型设置为error。另请参阅
- setErrorString(errorString)¶
- Parameters:
errorString – str
如果查找失败,将发生的错误的人类可读描述设置为
str。另请参阅
- setHostName(name)¶
- Parameters:
name – str
将此
QHostInfo的主机名设置为hostName。另请参阅
- setLookupId(id)¶
- Parameters:
id – int
将此查找的ID设置为
id。另请参阅
将此主机信息与
other交换。此操作非常快速且永远不会失败。