PySide6.QtNetwork.QNetworkInterface¶
- class QNetworkInterface¶
QNetworkInterface
类提供了主机IP地址和网络接口的列表。更多…概要¶
方法¶
def
__init__()
def
addressEntries()
def
flags()
def
index()
def
isValid()
def
name()
def
swap()
def
type()
静态函数¶
def
allAddresses()
def
allInterfaces()
注意
本文档可能包含从C++自动翻译到Python的代码片段。我们始终欢迎对代码片段翻译的贡献。如果您发现翻译问题,您也可以通过在我们的https:/bugreports.qt.io/projects/PYSIDE上创建工单来告知我们。
详细描述¶
QNetworkInterface
表示连接到运行程序的主机的一个网络接口。每个网络接口可能包含零个或多个IP地址,每个IP地址可以选择性地与一个子网掩码和/或广播地址关联。可以通过addressEntries()
获取这些三元组的列表。或者,当不需要子网掩码或广播地址或其他信息时,可以使用allAddresses()
便捷函数仅获取活动接口的IP地址。QNetworkInterface
还通过hardwareAddress()
报告接口的硬件地址。并非所有操作系统都支持报告所有功能。在所有平台上,只有IPv4地址保证被此类列出。特别是,IPv6地址列表仅在Windows、Linux、macOS和BSD系统上受支持。
另请参阅
- class InterfaceFlag¶
(继承自
enum.Flag
) 指定与此网络接口相关的标志。可能的值为:常量
描述
QNetworkInterface.IsUp
网络接口处于“启用”状态 - 由管理操作启用
QNetworkInterface.IsRunning
网络接口正在运行:已配置为“启动”并且(通常)物理连接到网络
QNetworkInterface.CanBroadcast
网络接口工作在广播模式
QNetworkInterface.IsLoopBack
网络接口是一个回环接口:也就是说,它是一个虚拟接口,其目的地是主机本身
QNetworkInterface.IsPointToPoint
网络接口是一个点对点接口:也就是说,它可以直接到达一个单一的地址。
QNetworkInterface.CanMulticast
网络接口支持多播
请注意,一个网络接口不能同时是基于广播的和点对点的。
- class InterfaceType¶
指定此接口的硬件类型(物理层,OSI 第1层),如果可以确定的话。未在下面列出的接口类型通常会被列为未知,尽管未来版本的 Qt 可能会添加新的枚举值。
可能的值为:
常量
描述
QNetworkInterface.Unknown
无法确定接口类型或它不是其他列出的类型之一。
QNetworkInterface.Loopback
虚拟回环接口,分配有回环IP地址(127.0.0.1, ::1)。
QNetworkInterface.Virtual
一种被确定为虚拟的接口类型,但不是其他任何可能的类型。例如,隧道接口(目前)被检测为虚拟接口。
QNetworkInterface.Ethernet
IEEE 802.3 以太网接口,尽管在许多系统上,其他类型的 IEEE 802 接口也可能被检测为以太网(尤其是 Wi-Fi)。
QNetworkInterface.Wifi
IEEE 802.11 Wi-Fi 接口。请注意,在某些系统上,
QNetworkInterface
可能无法区分普通以太网和 Wi-Fi,因此不会返回此枚举值。QNetworkInterface.Ieee80211
WiFi的别名。
QNetworkInterface.CanBus
ISO 11898 控制器局域网总线接口,通常用于汽车系统。
QNetworkInterface.Fddi
ANSI X3T12 光纤分布式数据接口,一种通过光纤传输的局域网。
QNetworkInterface.Ppp
点对点协议接口,通过较低的传输层(通常是无线电或物理线路上的串行)在两个节点之间建立直接连接。
QNetworkInterface.Slip
串行线路互联网协议接口。
QNetworkInterface.Phonet
使用Linux Phonet套接字系列的接口,用于与蜂窝调制解调器通信。有关更多信息,请参阅Linux内核文档。
QNetworkInterface.Ieee802154
IEEE 802.15.4 个人区域网络接口,不包括6LoWPAN(见下文)。
QNetworkInterface.SixLoWPAN
6LoWPAN(低功耗无线个人区域网络上的IPv6)接口,这些接口在IEEE 802.15.4物理层上运行,但具有针对IPv6和UDP的特定头部压缩方案。这种类型的接口通常用于网状网络。
QNetworkInterface.Ieee80216
IEEE 802.16 无线城域网,也被商业名称“WiMAX”所熟知。
QNetworkInterface.Ieee1394
IEEE 1394 接口(也称为“FireWire”)。
- __init__()¶
构造一个空的网络接口对象。
- __init__(other)
- Parameters:
其他 –
QNetworkInterface
创建包含在
other
中的QNetworkInterface
对象的副本。- addressEntries()¶
- Return type:
返回此接口拥有的IP地址列表及其相关的网络掩码和广播地址。
如果不需要子网掩码或广播地址或其他信息,您可以调用
allAddresses()
函数来仅获取活动接口的IP地址。- static allAddresses()¶
- Return type:
.list of QHostAddress
这个便捷函数返回在主机上找到的所有IP地址。它等同于在所有由
allInterfaces()
返回的处于IsUp
状态的对象上调用addressEntries()
,以获取QNetworkAddressEntry
对象的列表,然后在每个对象上调用ip()
。- static allInterfaces()¶
- Return type:
返回在主机上找到的所有网络接口的列表。如果失败,则返回一个空列表。
- flags()¶
- Return type:
返回与此网络接口关联的标志。
- hardwareAddress()¶
- Return type:
字符串
返回此接口的低级硬件地址。在以太网接口上,这将是字符串表示的MAC地址,由冒号分隔。
其他接口类型可能具有其他类型的硬件地址。实现不应依赖此函数返回有效的MAC地址。
另请参阅
- humanReadableName()¶
- Return type:
字符串
返回此网络接口在Windows上的人类可读名称,例如“本地连接”,如果可以确定名称。如果不能确定,此函数返回与
name()
相同的内容。人类可读名称是用户可以在Windows控制面板中修改的名称,因此它可能在程序执行期间发生变化。在Unix系统上,此函数目前总是返回与
name()
相同的结果,因为Unix系统不存储人类可读名称的配置。- index()¶
- Return type:
整数
返回接口系统索引(如果已知)。这是操作系统分配的一个整数,用于标识此接口,通常不会更改。它与IPv6地址中的范围ID字段匹配。
如果索引未知,此函数返回0。
- static interfaceFromIndex(index)¶
- Parameters:
索引 – int
- Return type:
返回一个
QNetworkInterface
对象,该对象对应于内部ID为index
的接口。网络接口有一个称为“接口索引”的唯一标识符,用于将其与系统上的其他接口区分开来。通常,这个值是逐步分配的,接口被移除然后再次添加时每次都会获得不同的值。此索引也出现在IPv6地址的范围ID字段中。
- static interfaceFromName(name)¶
- Parameters:
name – str
- Return type:
返回一个名为
name
的接口的QNetworkInterface
对象。如果不存在这样的接口,此函数将返回一个无效的QNetworkInterface
对象。字符串
name
可以是实际的接口名称(例如“eth0”或“en1”)或字符串形式的接口索引(“1”、“2”等)。- static interfaceIndexFromName(name)¶
- Parameters:
name – str
- Return type:
整数
警告
本节包含从C++自动翻译到Python的代码片段,可能包含错误。
返回名称为
name
的接口的索引,如果没有该名称的接口则返回0。此函数应产生与以下代码相同的结果,但可能会执行得更快。QNetworkInterface.interfaceFromName(name).index()
- static interfaceNameFromIndex(index)¶
- Parameters:
索引 – int
- Return type:
字符串
警告
本节包含从C++自动翻译到Python的代码片段,可能包含错误。
返回索引为
index
的接口名称,如果没有该索引的接口,则返回空字符串。此函数应产生与以下代码相同的结果,但可能会执行得更快。QNetworkInterface.interfaceFromIndex(index).name()
- isValid()¶
- Return type:
布尔
如果此
QNetworkInterface
对象包含有关网络接口的有效信息,则返回true
。- maximumTransmissionUnit()¶
- Return type:
整数
返回此接口的最大传输单元(如果已知),否则返回0。
最大传输单元是在此接口上发送的最大数据包,而不会导致链路级分段。应用程序可以使用此值来计算适合未分段UDP数据报的有效负载大小。在计算可以传输的有效负载大小时,请记住减去在接口通信中使用的标头大小,例如TCP(20字节)或UDP(12),IPv4(20)或IPv6(40,缺少某种形式的标头压缩)。还要注意,到目的地的完整路径上的MTU(路径MTU)可能小于接口的MTU。
另请参阅
- name()¶
- Return type:
字符串
返回此网络接口的名称。在Unix系统上,这是一个包含接口类型和可选序列号的字符串,例如“eth0”、“lo”或“pcn0”。在Windows上,它是一个用户无法更改的内部ID。
- swap(other)¶
- Parameters:
其他 –
QNetworkInterface
将此网络接口实例与
other
交换。此函数非常快且永远不会失败。- type()¶
- Return type:
返回此接口的类型,如果可以确定。如果无法确定,此函数返回
Unknown
。另请参阅