Qt-获取网络接口信息的综合示例

在前面的文章中介绍了与 获 取 本 机 网 络 信 息 相 关 的 类 常 用 的 有 4 个 , 分 别 是 : QHostAddress, QHostInfo, QNetworkInterface 和 QNetworkAddressEntry。这4个类就不详细介绍了,本文我们主要使用这4个类中的常用方法来获取有关网络接口的相关信息。

 1 #include "mainwindow.h"
 2
 3 #ifdef IR_FUNC_TEST
 4 #include <QDebug>
 5 #include <QHostInfo>
 6 #include <QHostAddress>
 7 #include <QNetworkInterface>
 8 #include <QNetworkAddressEntry>
 9
10 #endif
11
12 MainWindow::MainWindow(QWidget *parent)
13     : QMainWindow(parent)
14 {
15
16 #ifdef IR_FUNC_TEST
17     // 获取主机名
18     QString localHostName = QHostInfo::localHostName();
19     qDebug() << "主机名: " << localHostName;
20
21     // 获取本主机上的IP地址列表
22     QHostInfo hostInfo = QHostInfo::fromName(localHostName);
23     QList<QHostAddress> addrList = hostInfo.addresses();
24     qDebug() << "本主机上的IP地址列表,总计: " << addrList.count();
25     foreach (QHostAddress var, addrList) {
26         qDebug() << var.toString();
27     }
28
29     // 获取本机的网络接口列表
30     QList<QNetworkInterface> ifaceList = QNetworkInterface::allInterfaces();
31     for (int i = 0; i < ifaceList.count(); i++){
32         QNetworkInterface var = ifaceList.at(i);
33         qDebug() << tr("########## 设备%1 ############").arg(i);
34         qDebug() << tr("接口名称:") << var.humanReadableName();
35         qDebug() << tr("设备名称:") << var.name();
36         qDebug() << tr("硬件地址:") << var.hardwareAddress();
37
38         // 读取一个IP地址的关联信息列表
39         QList<QNetworkAddressEntry> entryList = var.addressEntries();
40         foreach(QNetworkAddressEntry entry, entryList){
41             qDebug() << "IP: " << entry.ip().toString();
42             qDebug() << "子网掩码:" << entry.netmask().toString();
43             qDebug() << "广播地址:" << entry.broadcast().toString();
44         }
45     }
46
47 #endif
48 }
49
50 MainWindow::~MainWindow()
51 {
52
53 }
时间: 2025-01-09 01:59:06

Qt-获取网络接口信息的综合示例的相关文章

Linux获取网络接口信息

linux获取网络接口信息需要用到的函数为ioctl(),结构体struct ifreq,struct ifconf 1.ioctl()函数原型及作用 1 #include <sys/ioctl.h> 2 3 int ioctl(int d, int request, ...); 4 5 //参数 6 //int d:是一个文件描述符 7 //int request :表示要请求的信息.如IP地址.网络掩码等 8 //......:可变参数,根据request而定 下面是ioctl请求的req

Linux下获取网络接口信息

Linux下的网络接口信息在shell下可以很方便地使用ifconfig查看.同样,使用C/C++也可以很方便地获取接口信息. netdevice是一个低级别的访问Linux网络设备的方法.此方法通过ioctl来获取网络接口的相关信息. 这里需要借助<net/if.h>头文件中定义的ifreq结构体.此结构体包含了网络接口的名称.IP地址.广播地址.网络地址. 掩码等相关信息.在获取上述相关信息的时候需要指明网络接口的名称. 1 struct ifreq { 2 char ifr_name[I

ioctl获取网络接口信息

linux下网络程序经常在启动执行后使用ioctl获取主机的全部网络接口信息, 例如接口地址.是否支持广播,是否支持多播等. 函数原型 #include <sys/ioctl.h> int ioctl(int d, int request, ...); 返回值:成功返回0,出错返回-1 常见选项 SIOCGIFCONF 获取所有接口的列表 SIOCGIFBRDADDR 获取广播地址 SIOCGIFMTU  获取mtu linux下使用ioctl操作网络接口,需要用到两个结构体 ifconf用来

获取网络接口信息——ioctl()函数与结构体struct ifreq、 struct ifconf

转载请注明出处:windeal专栏 Linux 下 可以使用ioctl()函数 以及 结构体 struct ifreq  结构体struct ifconf来获取网络接口的各种信息. ioctl 首先看ioctl()用法 ioctl()原型如下: #include <sys/ioctl.h> int ioctl(int fd, int request, ...); 参数: fd     : 文件描述符 request:  表示要请求的信息.如IP地址.网络掩码等 ...     :  后面的可变

Qt 获取CPU信息

在Qt中调用Windows API GetSystemInfo可以获取CPU的相关信息,使用Qt的界面控件显示在界面上.在实现的过程中遇到了一个问题,就是显示地址信息在界面控件上. 试了好几种方法,都不能显示,最后想到了格式化函数sprintf,将地址转为char类型的数组或者指针,再转为字符串就可以正常显示了. 如果有人有更好的方法来显示地址,欢迎交流. 完整代码: #pragma execution_character_set("utf-8") #ifndef QCPUINFO_H

Qt获取窗口信息

最近闲来无事,复习下Qt,为以后做准备. 主要函数: x()   获取窗口左上角横坐标 y()   获取窗口左上角纵坐标 frameGeometry()   获取窗口长宽(frameGeometry().width(),frameGeometry().height()); 附上源代码:

微信接口获取用户信息

必须的参数:appid和appSecret ①获取code 接口链接示例: https://open.weixin.qq.com/connect/oauth2/authorize?appid=wxbafc7fdf3664b600&redirect_uri=http%3a%2f%2f0708.pinzhi365.com%2findex_tb.html&response_type=code&scope=snsapi_userinfo&state=STATE&connec

Qt获取本机网络信息

目的: 获取本机的主机名.IP地址.硬件地址等网络信息. 工具: 使用Qt提供的网络模块QtNetwork: 使用Qt提供的类QHostInfo.QNetworkInterface.QNetworkAddressEntry. 代码: 获取本机主机名和IP地址 void NetworkInformation::getHostInformation() { //获取本机主机名 QString localHostName = QHostInfo::localHostName(); LineEditLo

最简单的基于DirectShow的示例:获取Filter信息

===================================================== 最简单的基于DirectShow的示例文章列表: 最简单的基于DirectShow的示例:视频播放器 最简单的基于DirectShow的示例:视频播放器图形界面版 最简单的基于DirectShow的示例:视频播放器自定义版 最简单的基于DirectShow的示例:获取Filter信息 =====================================================