PySide6.QtNetwork.QNetworkAddressEntry

class QNetworkAddressEntry

QNetworkAddressEntry 类存储网络接口支持的一个IP地址,以及其相关的子网掩码和广播地址。更多

概要

方法

注意

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

详细描述

每个网络接口可以包含零个或多个IP地址,这些IP地址又可以与网络掩码和/或广播地址相关联(取决于操作系统的支持)。

这个类代表一个这样的组。

class DnsEligibilityStatus

此枚举指示给定的主机地址是否有资格发布在域名系统(DNS)或其他类似的名称解析机制中。通常,如果该地址是这台机器在不确定的时间内可以到达的地址,那么它就适合发布,尽管它不必是永久性的。例如,通过DHCP获得的地址通常是有资格的,但通过加密生成的临时IPv6地址则不是。

常量

描述

QNetworkAddressEntry.DnsEligibilityUnknown

Qt 和操作系统无法确定是否应发布此地址。如果应用程序找不到任何符合条件的地址,可能需要应用进一步的启发式方法。

QNetworkAddressEntry.DnsEligible

此地址有资格在DNS中发布。

QNetworkAddressEntry.DnsIneligible

此地址不应在DNS中发布,也不应传输给其他方,除非可能作为传出数据包的源地址。

__init__()

构造一个空的 QNetworkAddressEntry 对象。

__init__(other)
Parameters:

其他QNetworkAddressEntry

构造一个QNetworkAddressEntry对象,该对象是other对象的副本。

broadcast()
Return type:

QHostAddress

返回与IPv4地址和网络掩码关联的广播地址。通常可以通过将IP地址中网络掩码为0的位设置为1来从这两个值中推导出广播地址。(换句话说,通过对IP地址和网络掩码的反码进行按位或运算)

对于IPv6地址,此成员始终为空,因为在该系统中广播的概念已被放弃,转而采用多播。特别是,可以通过“所有节点”特殊多播组(地址FF02::1)访问与本地网络中所有节点对应的主机组。

另请参阅

setBroadcast()

clearAddressLifetime()

重置此地址的首选和有效生命周期。在此调用之后,isLifetimeKnown() 将返回 false

dnsEligibility()
Return type:

DnsEligibilityStatus

返回此地址是否有资格在域名系统(DNS)或类似的名称解析机制中发布。

一般来说,如果一个地址是这台机器在不确定的时间内可以到达的地址,那么它就适合发布,尽管它不需要是永久性的。例如,通过DHCP获得的地址通常符合条件,但通过加密生成的临时IPv6地址则不符合。

在某些系统上,QNetworkInterface 需要启发式地确定哪些地址是符合条件的。

ip()
Return type:

QHostAddress

此函数返回在网络接口中找到的一个IPv4或IPv6地址。

另请参阅

setIp()

isLifetimeKnown()
Return type:

布尔

如果地址的生存期已知,则返回true,否则返回false。如果生存期未知,preferredLifetime()validityLifetime()都将返回QDeadlineTimer::Forever。

isPermanent()
Return type:

布尔

如果此地址在此接口上是永久的,则返回true,如果是临时的,则返回false。永久地址是指没有过期时间且通常是静态的(手动配置的)。

如果无法确定此信息,此函数返回 true

注意

根据操作系统和网络配置工具的不同,如果工具没有正确向操作系统告知详细信息,临时地址可能会被解释为永久地址。

isTemporary()
Return type:

布尔

如果此地址在此接口上是临时的,则返回true,如果是永久的,则返回false

netmask()
Return type:

QHostAddress

返回与IP地址相关联的子网掩码。子网掩码以IP地址的形式表示,例如255.255.0.0。

对于IPv6地址,前缀长度被转换为一个地址,其中设置为1的位数等于前缀长度。对于64位的前缀长度(最常见的值),网络掩码将表示为QHostAddress,其中包含地址FFFF:FFFF:FFFF:FFFF:

.. seealso::  :meth:`setNetmask()<PySide6.QtNetwork.QNetworkAddressEntry.setNetmask>`  :meth:`prefixLength()<PySide6.QtNetwork.QNetworkAddressEntry.prefixLength>`
__ne__(other)
Parameters:

其他QNetworkAddressEntry

Return type:

布尔

如果此网络地址条目与 other 不同,则返回 true

__eq__(other)
Parameters:

其他QNetworkAddressEntry

Return type:

布尔

如果此网络地址条目与other相同,则返回true

preferredLifetime()
Return type:

QDeadlineTimer

返回此地址变为弃用(不再首选)的截止时间(如果已知)。如果地址的生存期未知(请参见isLifetimeKnown()),此函数始终返回QDeadlineTimer::Forever。

虽然首选地址,但操作系统可能会将其用作新发送数据包的源地址。在它被弃用后,它仍然会在一段时间内对传入的数据包有效,直到最终被移除(参见 validityLifetime() )。

prefixLength()
Return type:

整数

返回此IP地址的前缀长度。前缀长度与网络掩码中设置为1的位数相匹配(参见netmask())。对于IPv4地址,该值介于0和32之间。对于IPv6地址,它介于0和128之间,并且是表示地址的首选形式。

如果无法确定前缀长度(即netmask()返回一个空的QHostAddress()),此函数返回-1。

setAddressLifetime(preferred, validity)
Parameters:

将此地址的首选和有效生命周期分别设置为preferredvalidity的截止时间。在此调用之后,isLifetimeKnown()将返回true,即使两个参数都是QDeadlineTimer::Forever。

setBroadcast(newBroadcast)
Parameters:

newBroadcastQHostAddress

将此QNetworkAddressEntry对象的广播IP地址设置为newBroadcast

另请参阅

broadcast()

setDnsEligibility(status)
Parameters:

状态DnsEligibilityStatus

将此地址的DNS资格标志设置为status

另请参阅

dnsEligibility()

setIp(newIp)
Parameters:

newIpQHostAddress

QNetworkAddressEntry对象包含的IP地址设置为newIp

另请参阅

ip()

setNetmask(newNetmask)
Parameters:

newNetmaskQHostAddress

将此QNetworkAddressEntry对象包含的子网掩码设置为newNetmask。设置子网掩码也会设置前缀长度以匹配新的子网掩码。

setPrefixLength(length)
Parameters:

长度 – int

将此IP地址的前缀长度设置为lengthlength的值必须对此类型的IP地址有效:对于IPv4地址,介于0和32之间;对于IPv6地址,介于0和128之间。设置为任何无效值等同于设置为-1,这意味着“无前缀长度”。

设置前缀长度也会设置网络掩码(参见 netmask() )。

swap(other)
Parameters:

其他QNetworkAddressEntry

将此网络地址条目实例与 other 交换。此函数非常快且永远不会失败。

validityLifetime()
Return type:

QDeadlineTimer

返回此地址变为无效并将从网络堆栈中移除的截止时间(如果已知)。如果地址的生存期未知(请参见isLifetimeKnown()),此函数始终返回QDeadlineTimer::Forever。

当一个地址有效时,它将被操作系统接受为此机器的有效目标地址。它是否被用作新发出的数据包的源地址,除了其他规则外,还由首选生命周期控制(参见 preferredLifetime() )。