博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
Qt之QNetworkInterface获取主机信息
阅读量:6219 次
发布时间:2019-06-21

本文共 1304 字,大约阅读时间需要 4 分钟。

简述

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

QNetworkInterface表示了当前程序正在运行时与主机绑定的一个网络接口。每个网络接口可能包含0个或多个IP地址,每个IP地址都可选择性地与一个子网掩码和/或一个广播地址相关联。这样的列表可以通过addressEntries()方法获得。当子网掩码或者广播地址不必要时,可以使用allAddresses()便捷函数来仅仅获得IP地址。

QNetworkInterface使用hardwareAddress()方法获取接口的硬件地址。

不是所有的操作系统都支持这些所有的特性。只有IPv4地址可以保证在所有平台上都能被这个类列举出来,尤其是IPv6地址的列举目前只支持Windows XP及相关版本、Linux、MacOS和BSDs。

获取所有IP地址

这个便利函数返回主机上面发现的所有IP地址。相当于allInterfaces()返回的所有对象调用addressEntries()来获取QHostAddress对象列表,然后每一个对象调用QHostAddress::ip()方法。

QList
list = QNetworkInterface::allAddresses();foreach (QHostAddress address, list) { qDebug() << address;}

获取网络接口列表

hardwareAddress()返回硬件地址。对以太网接口,这是一个用字符串表示的MAC地址(冒号分隔)。其它接口类型可能使用其他类型的硬件地址,不要依靠这个函数来返回一个合法的MAC地址。

foreach (QNetworkInterface netInterface, list) {    // 设备名    qDebug() << "Device:" << netInterface.name();    // 硬件地址    qDebug() << "HardwareAddress:" << netInterface.hardwareAddress();    QList
entryList = netInterface.addressEntries(); // 遍历每一个IP地址(每个包含一个IP地址,一个子网掩码和一个广播地址) foreach(QNetworkAddressEntry entry, entryList) { // IP地址 qDebug() << "IP Address:" << entry.ip().toString(); // 子网掩码 qDebug() << "Netmask:" << entry.netmask().toString(); // 广播地址 qDebug() << "Broadcast:" << entry.broadcast().toString(); }}

转载地址:http://rumja.baihongyu.com/

你可能感兴趣的文章
Windows Mobile下native c++ typeid的使用
查看>>
用ASP.NET写个SQLSERVER的小工具
查看>>
dojo 官方翻译 dojo/string 版本1.10
查看>>
flex for循环
查看>>
生活中的经典感人语句
查看>>
JavaScript常用字符串函数
查看>>
数据交换格式XML和JSON对比
查看>>
强烈推荐Oracle的入门心得
查看>>
POJ 1195 Mobile phones (二维树状数组或线段树)
查看>>
LINUX下使用crontab进行RMAN备份实验
查看>>
Hive文件格式
查看>>
[LeetCode] Delete Node in a Linked List
查看>>
农历js脚本
查看>>
获取对象的 RTTI 属性与事件的函数
查看>>
java获得CPU使用率,系统内存,虚拟机内存等情况
查看>>
.NET操作Excel表格的整理
查看>>
vcl.Forms等与VCL界面有关的单元不支持跨平台
查看>>
Windows Vista for Developers——第一部分:Aero向导
查看>>
条件随机场CRF HMM,MEMM的区别
查看>>
CentOS7使用firewalld打开关闭防火墙与端口
查看>>