class QNetworkAddressEntry#

QNetworkAddressEntry 类存储一个由网络接口支持的网络地址及其关联的子网掩码和广播地址。更多...

摘要#

方法#

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

详细说明#

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

此类表示这样的一个组。

class DnsEligibilityStatus#

该枚举指示给定的主机地址是否适合在域名系统(DNS)或其他类似名称解析机制中发布。通常情况下,如果地址在此机器上可被访问不确定的时间长度,则该地址适合进行发布,尽管它需要不一定是永久的。例如,通过DHCP获得的地址通常符合条件,但通过加密生成的临时IPv6地址则不符合。

常量

描述

QNetworkAddressEntry.DnsEligibilityUnknown

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

QNetworkAddressEntry.DnsEligible

此地址符合DNS发布的要求。

QNetworkAddressEntry.DnsIneligible

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

__init__(other)#
参数:

otherQNetworkAddressEntry

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

__init__()

构造一个空的QNetworkAddressEntry对象。

broadcast()#
返回类型:

QHostAddress

返回与IPv4地址和子网掩码关联的广播地址。它通常可以通过将IP地址中子网掩码包含为0的位的值设置为1来推导出来。(换句话说,通过将IP地址与子网掩码的逆进行按位或操作)

由于在IPv6系统中已经放弃了广播这一概念,转而使用多播,因此此成员对于IPv6地址始终为空。特别是,可以通过“all-nodes”特殊多播组(地址FF02::1)到达对应于本地网络中所有节点的主机组。

另请参阅

setBroadcast()

clearAddressLifetime()#

重置这个地址的首选有效寿命。本调用后,isLifetimeKnown() 将返回 false

dnsEligibility()#
返回类型:

DnsEligibilityStatus

返回此地址是否适合在域名系统 (DNS) 或类似的名 resolution 机制中发布。

一般而言,如果此地址是该机器在不确定时间内可以访问的地址,则适合公布,尽管它不必是永久的。例如,通过 DHCP 获得的地址通常是有资格的,但通过密码学生成的临时 IPv6 地址则不是。

在某些系统中,可能需要通过启发式方法确定哪些地址有资格。

ip()#
返回类型:

QHostAddress

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

另请参阅

setIp()

isLifetimeKnown()#
返回类型:

bool

如果地址寿命已知,则返回 true,否则返回 false。如果寿命未知,则 preferredLifetime()validityLifetime() 将返回 QDeadlineTimer::Forever。

isPermanent()#
返回类型:

bool

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

如果不能确定此信息,此函数将返回 true

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

isTemporary()#
返回类型:

bool

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

netmask()#
返回类型:

QHostAddress

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

对于IPv6地址,前缀长度转换为具有与前缀长度相同数量的1位的地址。对于64位前缀长度(最常见的值),网络掩码将以包含地址FFFF:FFFF:FFFF:FFFF的QHostAddress表示。

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

otherQNetworkAddressEntry

返回类型:

bool

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

__eq__(other)#
参数:

otherQNetworkAddressEntry

返回类型:

bool

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

preferredLifetime()#
返回类型:

QDeadlineTimer

如果知道此地址成为废弃的截止日期(不再首选),则返回该截止日期。如果地址的生命周期未知(见isLifetimeKnown() ),则此函数始终返回QDeadlineTimer::Forever。

当地址是首选时,操作系统可能会将其用作新发出的数据包的源地址。在它被废弃后,它将继续对所有接收到的数据包有效一段时间,最终才会被移除(见validityLifetime() )。

prefixLength()#
返回类型:

int

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

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

setAddressLifetime(preferred, validity)#
参数:

分别将此地址的推荐和有效期生存期设置为recommendedvalidity的截止日期。在本调用之后,即使两个参数都是QDeadlineTimer::Forever,isLifetimeKnown()将返回true

setBroadcast(newBroadcast)#
参数:

newBroadcastQHostAddress

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

另请参阅

broadcast()

setDnsEligibility(status)#
参数:

statusDnsEligibilityStatus

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

另请参阅

dnsEligibility()

setIp(newIp)#
参数:

newIpQHostAddress

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

另请参阅

ip()

setNetmask(newNetmask)#
参数:

newNetmaskQHostAddress

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

setPrefixLength(length)#
参数:

length – int

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

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

swap(other)#
参数:

otherQNetworkAddressEntry

与此网络地址条目实例交换other。此函数非常快速且从不失败。

validityLifetime()#
返回类型:

QDeadlineTimer

返回地址变为无效的截止日期,并将在已知的情况下从网络堆栈中删除,如果已知。如果地址生命周期未知(请参阅isLifetimeKnown() ),则此函数始终返回QDeadlineTimer::Forever。

当地址有效时,操作系统会将它接受为此机器的合法目标地址。它是作为新的输出数据包的源地址使用,由预定生命周期(请参阅preferredLifetime() )和其他规则控制。