QNetworkInterface类介绍

Qt QNetworkInterface详解 1.QNetworkInterface简介 QNetworkInterface可以获得应用程序所在主机的所有网络接口,包括子网掩码和广播地址等。 主要静态方法 QList<QHostAddress> allAddresses():返回主机上所有Ip地址的列表。 QList<QNetworkInterface> allInterfaces():返回主机上所有接口的网络列表。 成员方法 QString hardwareAddress():返回该接口的低级硬件地址,以太网里就是M 阅读详情

一、QNetworkInterface::InterfaceFlag (接口标志)

        这个枚举描述了网络接口当前的状态和具备的能力,是一个网卡的"状态标签"。

enum InterfaceFlag {
        IsUp = 0x1,
        IsRunning = 0x2,
        CanBroadcast = 0x4,
        IsLoopBack = 0x8,
        IsPointToPoint = 0x10,
        CanMulticast = 0x20
    };

        IsUp (0x1): 网络接口已启用("up"),即被管理员或系统激活。

        IsRunning (0x2): 网络接口正处于工作状态,通常意味着它已配置好并且物理上是连接的(例如网线已插入)。

        CanBroadcast (0x4): 接口支持广播模式。

        IsLoopBack (0x8): 这是一个回环接口(如常见的 127.0.0.1),它是一个虚拟接口,用于本机内部通信。

        IsPointToPoint (0x10): 接口是点对点连接,例如一个PPP拨号连接。

        CanMulticast (0x20): 接口支持多播(组播)。这个标志对我们进行组播编程至关重要,只有支持多播的接口才能用于加入组播组。

二、QNetworkInterface::InterfaceType (接口类型)

        这个枚举指明了接口的硬件类型。

enum InterfaceType {
        Loopback = 1,
        Virtual,
        Ethernet,
        Slip,
        CanBus,
        Ppp,
        Fddi,
        Wifi,
        Ieee80211 = Wifi,   // alias
        Phonet,
        Ieee802154,
        SixLoWPAN,  // 6LoWPAN, but we can't start with a digit
        Ieee80216,
        Ieee1394,

        Unknown = 0
    };

        Unknown: 类型未知。

        Loopback: 回环接口。

        Virtual: 虚拟接口(如VPN、隧道接口)。

        Ethernet: 以太网接口。        

        Wifi: Wi-Fi无线网络接口。

        此外,还有一些用于特殊网络的类型,如 CanBus、Ppp、SixLoWPAN 等。

三、核心成员函数 (Functions)

        这些函数让你可以获取接口的具体信息。你可以通过静态函数先获取所有接口,再通过每个接口对象的成员函数查询其属性。

    static QNetworkInterface interfaceFromName(const QString &name);
    static QNetworkInterface interfaceFromIndex(int index);
    static QList<QNetworkInterface> allInterfaces();
    static QList<QHostAddress> allAddresses();

静态函数(获取接口列表)

        QNetworkInterface interfaceFromName(const QString &name): 根据接口的名称(如 "eth0"、"en0" 或 "本地连接")获取对应的接口对象。

        QNetworkInterface interfaceFromIndex(int index): 根据系统分配的唯一索引号获取接口对象。

        QList<QNetworkInterface> allInterfaces(): 获取主机上所有网络接口的列表。这是最常用的入口函数。

        QList<QHostAddress> allAddresses(): 一个便捷函数,直接返回主机上所有IP地址的列表(不包含子网掩码等信息)。

四、成员函数(查询单个接口的属性)

    bool isValid() const;
    int index() const;
    int maximumTransmissionUnit() const;
    QString name() const;
    QString humanReadableName() const;
    InterfaceFlags flags() const;
    InterfaceType type() const;
    QString hardwareAddress() const;
    QList<QNetworkAddressEntry> addressEntries() const;

bool isValid(): 判断这个 QNetworkInterface 对象是否有效。

int index(): 返回系统为该接口分配的唯一索引号。

int maximumTransmissionUnit(): 返回该接口的最大传输单元值。

QString name(): 返回接口的系统内部名称(如 "eth0")。

QString humanReadableName(): 返回用户友好的名称(Windows上如 "以太网"),Unix系统上则通常和 name() 一样。

InterfaceFlags flags(): 返回接口标志组合,你可以用这个来判断接口当前状态(如是否已启用 IsUp,是否支持组播 CanMulticast)。

InterfaceType type(): 返回接口的硬件类型。QList<QNetworkAddressEntry> addressEntries(): 这是最重要的函数之一。它返回一个 QNetworkAddressEntry 对象的列表,每个对象都包含了一个IP地址及其对应的子网掩码和广播地址。

QString hardwareAddress(): 返回硬件地址,对于以太网就是大家常说的 MAC 地址,格式如 "01:23:45:67:89:ab"。

QList<QNetworkAddressEntry> addressEntries() const:获取该接口上的所有IP地址条目

Qt系列文章之十二(网络编程初体验) 前言   Qt网络模块提供了用于编写 TCP/IP 客户端和服务器端程序的各种类,如用于TCP通信的QTepSocket和QTepServer,用于UDP通信的QUdpSocket,还有用于实现HTTP、FTP 等普通网络协议的高级类如QNetworkRequest, QNetworkReply和QNetworkAccessManager。Qt网络模块还提供用于网络代理、网络承载管理的类,提供基于安全套接字层(Secure Sockets Layer,SSL) 协议的安全网络通信的类。   本章主要介绍基本 阅读详情

相关推荐

Qt 网络模块之 QNetworkInterface

QNetworkInterface 类提供了一组简单易用的接口,方便我们获取本机的网络接口信息。同时也为我们的网络编程提供了更多的可能性。

ByteNinja的博客 465

Qt网络编程:QNetworkInterface

一、描述 QNetworkInterface 代表一个连接到运行程序的主机网络接口。每个网络接口可能包含零个或多个 IP 地址,每个 IP 地址都可选地与网络掩码和/或广播地址相关联。 此类封装的数据如下: 二、类型成员 1、QNetworkInterface::InterfaceFlag:指定与网络接口关联的标志。 IsUp:网络接口处于活动状态。 IsRunning:网络接口已分配资源。 CanBroadcast:网络接口工作在广播模式。 IsLoopBack:网络接口是一个环回接口

友善啊,朋友的博客 6621

【Qt开发】详解QNetworkInterface类:网络接口查询与管理的实战应用示例代码

QNetworkInterface 提供了一个强大的接口来查询和管理系统中的网络接口。本文详细介绍了 QNetworkInterface 的基本功能、常用方法、以及高级应用技巧,并通过实例代码展示了如何使用该类获取和设置网络接口及其参数。通过这些介绍,读者可以更好地掌握和利用 QNetworkInterface 进行高效的网络接口管理。对于有特殊需求的开发者,也可以通过探索更多高级设置和优化策略,以满足具体的应用场景。

科技改变人类,技术成就未来 1256

qt QNetworkInterface详解

是 Qt 网络模块中的一个类,用于获取和管理计算机上网络接口的信息。它能够列出所有可用的网络接口(例如,Ethernet、Wi-Fi等),并提供接口的详细信息,如 MAC 地址、IP 地址、接口名称等。该类为开发者提供了一种在应用程序中与网络接口进行交互的简便方法,特别是在需要查询网络连接、选择合适的网络接口时非常有用。并不直接处理网络通信,它只提供有关网络接口的元数据。实际的数据传输通常通过QTcpSocket或QUdpSocket等类来完成。主要功能:列出本地所有网络接口:包括有线、无线、虚拟网卡等。

ckg3824278的博客 1749

Qt——Qt网络编程之获取本机网络信息(通过QHostInfo和QNetworkInterface 类获取本地网络所有接口信息)

在建立网络通信前,我们需要获取对方的IP地址、端口号等信息。在网络应用中,经常需要用到本机的主机名、 IP 地址、 MAC 地址等网络信息,在windows下,我们可以在cmd窗口中使用ipconfig指令查看相关网络信息(linux下指令是ifconfig)。Qt 提供了QHostInfo 和 QNetworkInterface 类可以用于此类信息查询。QNetworkInterface 这个类提供了获取本地网络接口(如网卡)信息的方法,包括接口地址、子网掩码、MAC地址等。

数字世界 万物互联 711

Qt 之 QNetworkInterface

QNetworkInterface类负责提供主机的IP地址和网络接口的列表。

青春不老,奋斗不止! 1万+

Qt中QHostInfo类和QNetworkInterface类的使用--获取主机信息

Qt网络编程-主机信息查询QHostInfo类1.主要功能函数介绍2.QHostInfo的使用 前言:  查询一个主机的MAC地址或IP地址是网络应用程序中经常用到的功能,Qt提供了QHostInfo类和QNetworkInterface类 可以用于此类信息的查询,完整代码见QT主机信息查询程序 运行效果图: QHostInfo类 1.主要功能函数介绍 类别 函数原型 作用 公共函数 QList<QHostAddress> addresses() 返回与主机hostName()

Vivi的城 1083

Qt网络编程之QNetworkInterface详解与实战

QNetworkInterface类是Qt框架中用于查询和操作网络接口的工具。它提供了丰富的接口信息,如接口名称、IP地址、子网掩码等,对于开发者来说,它是实现跨平台网络通信不可或缺的组件之一。加密技术是网络安全领域的基石,它通过数学算法将明文数据转换成密文数据,以防止未授权用户的读取。在加密技术中,主要分为对称加密和非对称加密两大类。对称加密技术使用同一个密钥进行数据的加密和解密,例如AES(高级加密标准)和DES(数据加密标准)。优点是加密和解密速度快,适合大量数据的加密。

weixin_36059856的博客 1174

qt获取网络ip地址的类QHhostInfo,QNetworkInterface,QHostAdress

最近在学习qt网络编程,基于tcp和udp协议。 看了一些别人的程序和qt4自带的例子,困扰我最大的问题就是获取ip的类,总结起来还挺多的。 主要介绍常用的QtNetwork Module中的QHostInfo,QHostAddress,QNetworkInterface和QNetAddressEntry等类。 1。QHostInfo类获取主机名和ip地址 (1)获取主机名: QHostI

dearmango 1199

2023-12-26~2025-07-04备份

一、海康视觉与汇川机器人 服务器-客户端通信设置IP在同一网段名称IP端口类型海康相机工控机7930服务器机器人3000客户端海康VM服务器设置1通信管理 增添TCP服务端,设置本机IP:192.168.0.20,端口号79302 协议解析 通信双方约定通信格式(设置收发数据格式,分隔符)机器人客户端设置(不同类型机器人设置有差别)1 通讯服务设置 设置连接服务器IP、服务端端口号、机器人端口号,确保连接正常2 协议解析 使用指令代码构建通讯解析。

青铜小码农 3126

SAP 资产主数据屏幕增强:对比字段追加与子屏幕/页签 2 种方案优劣

本文深入对比了SAP资产主数据(AS01/AS03)屏幕增强的两种方案:字段追加与子屏幕/页签。从技术实现、业务适配、系统维护等维度分析各自优劣,提供方案选型决策树和混合方案实践建议,帮助企业在SAP实施中做出最优选择。

weixin_28559803的博客 283

QT 网络编程之主机信息查询(QHostInfo 和 QNetworkInterface类)简介

Qt 网络模块提供了用于编写 TCP/IP 客户端和服务器端程序的各种类,如用于 TCP 通信的QTcpSocket 和 QTcpServer,用于 UDP 通信的 QUdpSocket,还有用于实现 HTTP、FTP 等普通网络协议的高级类如 QNetworkRequest,QNetworkReply 和QNetworkAccessManager。Qt 网络模块还提供用于网络代理、网络承载管理的类,提供基于安全套接字层(Secure Sockets Layer,SSL)协议的安全网络通信的类。

yangxueyangxue的博客 1617

KUKA机器人 - 从开机到自动运行

注1:本文仅代表本人对机器人使用的一些建议,在使用机器人前,还请详细阅读库卡机器人官方资料,道路千万条,安全第一条!!! 注2:技术有限,欢迎各位大大在阅读过程中发现各类问题,并且批评指正!!! 目录 一、准备工作 1. 机器人上电完成 2. 电脑安装Workvisual 二、学习手动移动机器人 三、项目配置 1. 设置机器人IP地址 2.电脑和机器人通过网线连接 3.查找并打开项目 4. 通讯配置 5. 项目上传 6. 检验IO配置 四、编程 1.新建程序 2. 程序...

yilunyao的博客 1万+

qt -- 网络编程QHostInfo和QNetworkInterface 类

QHostInfo类 lookupHost(),以异步的方式查找主机的IP地址 主要函数: QHostAddress类提供一个IP地址的信息,包括Ipv4,Ipv6。QHostAddress有两个主要函数: protocol() : 返回QAbstractSocket::NetworkLayerProtocol类型变量,表示当前IP地址的协议类型。QAbstractSocket::NetworkLayerProtocol枚举类型的取值。 toString(): 返回IP地址的...

ccr的博客 339

windows 下AD9361的 no-os master 工程搭建

参考网站: https://wiki.analog.com/resources/fpga/docs/build#windows_environment_setup https://wiki.analog.com/resources/eval/user-guides/ad-fmcomms2-ebz/software/no-os-setup 参考博客: https://blog.youkuaiyun.com...

Bronceyang的博客 7288

第八章 MobileNetv3网络详解

本文介绍了基于互补的搜索技术和新颖的架构设计的MobileNets的下一代。MobileNetV3通过硬件感知网络架构搜索(NAS)和NetAdapt算法相结合,针对移动电话CPU进行优化,随后通过新颖的架构改进技术进行了进一步提高。本文开始探索自动化搜索算法和网络设计如何相互协作,以利用互补的方法改进整体技术水平。通过此过程,我们创建了两个新的MobileNet模型:MobileNetV3-Large和MobileNetV3-Small,分别针对高资源和低资源使用情况。

ADICDFHL的博客 1万+

《十五》QT 网络编程之主机信息查询(QHostInfo 和 QNetworkInterface类)

Qt 网络模块提供了用于编写 TCP/IP 客户端和服务器端程序的各种类,如用于 TCP 通信的QTcpSocket和QTcpServer,用于 UDP 通信的QUdpSocket,还有用于实现 HTTP、FTP 等普通网络协议的高级类如 QNetworkRequest,QNetworkReply 和QNetworkAccessManager。Qt 网络模块还提供用于网络代理、网络承载管理的类,提供基于安全套接字层(Secure Sockets Layer,SSL)协议的安全网络通信的类。

ayf9999的博客 1138

从0到1带大家搭建spring cloud alibaba 微服务大型应用框架(十一)spring-boot-admin 监控篇(2)springcloud 集成spring boot admin

从0到1 手把手搭建spring cloud alibaba 微服务大型应用框架(十一)spring-boot-admin 监控篇(2)springcloud 集成spring boot admin spring-boot-admin 服务端创建与集成入nacos spring-boot-admin 查看日志

峡谷电光马仔的博客 1378

【类: QNetworkInterface】

静态公有函数 allAddresses 返回主机所有IP地址 allInterfaces 返回主机所有接口 interfaceFromIndex 返回指定索引的网络接口 interfaceFromName 返回指定名称的网络接口 interfaceIndexFromName 返回指定名称的网络接口的索引 interfaceNameFromIndex 返回指定名称的网络接口的索引 ...

技术学习 250

Nvidia Jetson 编解码开发(3)解决H265解码报错“PPS id out of range”

基于之前的开发程序通过Jetson Xavier NX 硬编码的H265发出后,上位机断点播放发出来的H265码流,会报“PPS id out of range” 错误。

jzwjzw19900922的博客 3810

PCB板设置20H 原则理解

20H原则是PCB设计中抑制EMI辐射的关键方法,要求电源层比相邻地层内缩20倍介质厚度(20H)。在四层板中实现20H原则需采用S-G-P-S层叠结构,确保GND与PWR紧邻。具体步骤包括:确定GND-PWR间介质厚度H,计算20H值(通常80-120mil),并在设计软件中将电源层四周内缩20H,同时保持地层完整不内缩。注意避免常见误区,如混淆介质厚度、地层内缩等。该原则能有效限制边缘场辐射,降低EMI干扰,是四层板EMC设计的重要规范。

qq_37999850的博客 689

PyQt6 QNetworkInterface 类详解:网络接口管理与应用实战

在 PyQt6 网络编程中,`QNetworkInterface` 是一个强大而实用的类,它提供了访问主机网络接口信息的能力。无论是开发网络监控工具、配置网络参数,还是实现跨平台的网络应用程序,`QNetworkInterface` 都是不可或缺的核心组件。

本博客分享软硬件一体化开发实战。硬件涵盖 PCB 设计、STM32 等 MCU 底层开发;软件包含 C++、Rust,Qt/QML、PyQt、Slint、TouchGFX、LVGL 各类 GUI 框架。方便软硬件开发者查阅学习。欢迎关注! 352

锂电池充电器电路设计 里面有电路

锂电池充电器电路设计 里面有电路 3.7V升压到5V电路设计。

C++ Qt5学习笔记 2020-12-16(网络编程1:QHostInfo类,QNetworkInterface类,TCP服务端和客户端通信)

TCP 在.pro中添加代码: QT += network

qq_36780295的博客 1054

jdk-8u144-linux-x64.tar.gz.

该资源为搭建Linux系统Java环境用,资源的后缀为tar.gz格式的压缩包

假人有限元模型

假人模型,车辆碰撞假人有限元模型,适合做乘员安全的研究者利用

Qt之QNetworkInterface

简述 QNetworkInterface类负责提供主机的IP地址和网络接口的列表。 QNetworkInterface表示了当前程序正在运行时与主机绑定的一个网络接口。每个网络接口可能包含0个或多个IP地址,每个IP地址都可选择性地与一个子网掩码和/或一个广播地址相关联。这样的列表可以通过addressEntries()方法获得。当...

weixin_34026276的博客 1050

android 蓝牙通讯demo

android 下蓝牙通讯demo,实现了发现蓝牙,使能蓝牙,通过蓝牙发送消息。

C++ Qt开发:QNetworkInterface网络接口组件

在Qt网络编程中,`QNetworkInterface`是一个强大的类,提供了获取本地网络接口信息的能力。通过`QNetworkInterface`,可以轻松地获取有关网络接口的信息,包括接口的名称、硬件地址、IP地址和子网掩码等。这个类对于需要获取本地网络环境信息的应用程序特别有用,例如网络配置工具、网络监控程序等。`QNetworkInterface`通过提供一致而易于使用的接口,使得网络编程中的任务更加简便和可靠。

微软技术分享 4743
上一篇: QT组播的建立和使用(绑定特定的网卡,绑定特定IP)
下一篇: C语言组播的使用
西装没钱买
博客等级 码龄4年 620粉丝 52原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值