Qt之QNetworkInterface获取主机信息

简述

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

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

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

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

  • 简述
  • 获取所有IP地址
  • 获取网络接口列表

获取所有IP地址

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

QList<QHostAddress> 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<QNetworkAddressEntry> 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();
    }
}
时间: 2024-12-11 07:46:12

Qt之QNetworkInterface获取主机信息的相关文章

Qt之QHostInfo获取主机信息

简述 Qt中提供了几个用于获取主机网络信息的类,包括:QHostInfo.QHostAddress.QNetworkInterface以及QNetworkAddress. QHostInfo类提供了一系列用于主机名查询的静态函数. QHostInfo利用操作系统提供的查询机制来查询与特定主机名相关联的主机的IP地址,或者与一个IP地址相关联的主机名.这个类提供了两个静态的便利函数:一个以异步方式工作,一旦找到主机就发射一个信号:另一个以阻塞方式工作,并且最终返回一个QHostInfo对象. 要使

QT遍历目录获取文件信息

QFileInfo 获取文件信息:文件名称,路径,大小,创建时间,修改时间,权限等 使用 路径: UNIX: /home/dipper/file1 Windows: C://dipper//file1 构造函数: QFileInfo fileInfo(path); QFileInfo fileInfo; fileInfo.setFile(path); exists(): 判断文件是否存在 size(): 获取文件大小 文件类型: isFile(), isDir(), isSymLink() sy

【C/C++学院】(18)QT文件读写/主窗口类/获取host信息

1.文件读写 QT提供了QFile类用于文件读写. QFile可以读写文本文件,也可以读写二进制文件 #include <QFile> #include <QTextStream> 读文本文件例子 QString s; QFile file("abc.txt); if (file.open(QFile::ReadOnly)) { QTextStream stream(&file); while (!stream.atEnd()) { s = stream.read

端口-如何获取主机中所有进程的udp连接的具体信息(远程IP:Port 收发字节数)

问题描述 如何获取主机中所有进程的udp连接的具体信息(远程IP:Port 收发字节数) 20C 我知道getudptable这个api能获取到一些udp的信息,但是只能获取本地的IP:Port,没法获取远程的,以及收发字节(流量),大神帮我!感激不尽!类似IPRadar(IP雷达)软件的这种功能! 解决方案 参考:http://bbs.csdn.net/topics/390953375 解决方案二: windump可以实现你的需求,开源的.地址:http://www.winpcap.org/w

asp.net获取客户端浏览器及主机信息

原文:asp.net获取客户端浏览器及主机信息 在线预览效果:http://tool.hovertree.com/info/client/ 其中aspx页面的控件代码: <asp:ListBox runat="server" ID="lbHoverTreeInfo" ClientIDMode="Static"> </asp:ListBox> 以下是实现代码: 1 using System; 2 using System.W

c++-Qt获取文件信息后崩溃结束,内附错误,求解决方案

问题描述 Qt获取文件信息后崩溃结束,内附错误,求解决方案 是自己做的媒体播放器,添加文件点确定后就会崩溃,调试的时候给出的这个框,求解 解决方案 段错误,你的代码中没有正确处理好指针,估计有访问空指针等问题 解决方案二: 查看是不是有指针的非法使用,一般这个错误很多都是指针非法使用导致.

5 个获取 Linux 主机信息的命令

Linux 系统管理员在接手一台新的服务器的时候,如果没有好的交接文档,我们可以得到的主机信息就要靠我们自己了.很多信息是可以直接通过命令从主机上获得的,下面就和大家分享 5 个获取 Linux 主机信息的命令.(注:我使用的是 Ubuntu 13.04) 1. 查看或改变 Linux 主机名的命令 $ hostname mylinuxbook-Inspiron-1525 从命令结果上您可以看到我的 Ubuntu 主机名是 mylinuxbook-Inspiron-1525.您可能会注意到,主机

Qt之QNetworkInterface

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

Linux中如何获取CPU信息

我们可以在 /proc/cpuinfo 中获取需要信息 1.当前 CPU 的型号 [root@ localhost  ~]# cat /proc/cpuinfo |grep "model name" |uniq model name      : AMD Opteron(tm) Processor 6140 2.当前 CPU 运行模式 [root@localhost tmp]# getconf LONG_BIT 32 说明当前 CPU 运行在32位环境下 3.当前 CPU 是否支持 6