Qt-获取主机网络信息之QNetworkInterface
QNetworkInterface类提供了一个主机IP地址和网络接口的列表。
QNetworkInterface表示了当前程序正在运行时与主机绑定的一个网络接口。每个网络接口可能包含0个或者多个IP地址,每个IP地址都可选择性地与一个子网掩码和(或)一个广播地址相关联。这样的列表可以通过QNetworkInterface的addressEntries()方法获得。作为一种可选的方案是,当子网掩码或者广播地址不是必须的,可以使用allAddresses()便捷函数来仅仅获得IP地址。
注:QNetworkAddressEntry类存储了被网络接口所支持的一个IP地址,同时还有与之相关的子网掩码和广播地址。
QNetworkInterface还使用hardwareAddress()方法报告接口的硬件地址。
不是所有的操作系统都支持报告这些所有的特性。只有IPv4地址可以保证在所有平台上都能被这个类列举出来,尤其是IPv6地址的列举目前只支持Windows XP及相关版本、Linux、MacOS和BSDs。
相关参考:QNetworkAddressEntry.
成员函数:allAddresses() [static]
这个便利函数返回在主机上面找到的所有的IP地址。它相当于对allInterfaces()返回的所有对象调用addressEntries()来获取QHostAddress对象列表,然后对这些对象调用QHostAddress::ip()方法。
#include "mainwindow.h"
#include <QHostAddress>
#include <QNetworkInterface>
#include <QNetworkAddressEntry>
#include <QDebug> MainWindow::MainWindow(QWidget *parent)
: QMainWindow(parent)
{
QList<QHostAddress> list = QNetworkInterface::allAddresses(); for (int i = ; i < list.size(); i++)
{
qDebug() << list.at(i);
}
}
成员函数:allInterfaces() [static]
返回一个在主机上找到的所有网络接口的列表。如果查找失败,则返回一个0个元素的列表。
#include "mainwindow.h"
#include <QHostAddress>
#include <QNetworkInterface>
#include <QNetworkAddressEntry>
#include <QDebug> MainWindow::MainWindow(QWidget *parent)
: QMainWindow(parent)
{
QList<QNetworkInterface> interface = QNetworkInterface::allInterfaces(); for (int i = ; i < interface.size(); i++)
{
qDebug() << interface.at(i);
QNetworkInterface item = interface.at(i);
QList<QNetworkAddressEntry> entryList = item.addressEntries();
for (int j = ; j < entryList.size(); j++)
{
qDebug() << "Item #" << j << entryList.at(j).ip();
}
}
}
成员函数:hardwareAddress() const
返回这个接口的底层硬件地址。对于以太网接口,这将是一个用字符串表示的MAC地址,通过冒号来分隔。其他接口类型可能使用其他类型的硬件地址。实现不要依靠这个函数来返回一个合法的MAC地址。
#include "mainwindow.h"
#include <QHostAddress>
#include <QNetworkInterface>
#include <QNetworkAddressEntry>
#include <QDebug> MainWindow::MainWindow(QWidget *parent)
: QMainWindow(parent)
{
QList<QNetworkInterface> interface = QNetworkInterface::allInterfaces(); for (int i = ; i < interface.size(); i++)
{
QNetworkInterface item = interface.at(i);
qDebug() << item.hardwareAddress();
}
}
参考资料:《获取网络接口信息》-MyNote
Qt-获取主机网络信息之QNetworkInterface的更多相关文章
- Qt-获取主机网络信息之QHostInfo
Qt中提供了几个用于获取主机网络信息的类,包括QHostInfo.QHostAddress.QNetworkInterface以及QNetworkAddress.在本节中,我将在这里总结QHostIn ...
- windows主机网络信息获取程序设计
掌握windows系统获取网络信息的各种API函数的功能与调用方法,掌握设计程序显示获取到相关网络信息的方法,掌握网络字节数据与主机字节数据之间的转换.掌握这些API函数调用的错误处理方法. 利用本地 ...
- Qt 获取usb设备信息 hacking
/************************************************************************** * Qt 获取usb设备信息 hacking * ...
- c/c++ 网络编程 UDP 用if_nameindex和ioctl取得主机网络信息
网络编程 UDP 用if_nameindex和ioctl取得主机网络信息 getifaddrs函数取得的东西太多了,如果只想取得网卡名字和网卡编号可以用下面的2个函数. 1,if_nameindex ...
- c/c++ 网络编程 UDP 主机网络信息取得
网络编程 UDP 主机网络信息取得 1,if_nametoindex 通过网卡名字取得网卡编号 2,if_indextoname 通过网卡编号取得网卡名字 #include <stdio.h&g ...
- 使用gethostname()函数和gethostbyname()函数获取主机相关信息
gethostname() : 返回本地主机的标准主机名. 原型如下: #include <unistd.h> int gethostname(char *name, size_t len ...
- 用ioctl获取无线网络信息 /usr//include/linux/wireless.h
1.UNIX Network Programming环境搭建 Unix NetWork Programming――环境搭建(解决unp.h等源码编译问题) http://blog.csdn.net/a ...
- Qt-获取主机网络信息之QHostAddress
QHostAddress类提供一个IP地址. 这个类提供一种独立于平台和协议的方式来保存IPv4和IPv6地址. QHostAddress通常与QTcpSocket,QTcpServer,QUdpSo ...
- Qt-获取主机网络信息之QNetworkAddressEntry
QNetworkAddressEntry类存储了一个网络接口所支持的一个IP地址,同时还有与之相关的子网掩码和广播地址. 每个网络接口可以包含0个或多个IP地址,这些IP地址可以分别关联一个子网掩码和 ...
随机推荐
- Android Studio Error2
ECLIPSE ANDROID PROJECT IMPORT SUMMARY ====================================== Ignored Files: ------- ...
- 学习Java设计模式的10条建议
设计模式在整个Java的学习路线图中扮演着承上启下的作用. 在整个软件生命周期中,唯一不变的就是变化.设计模式就是要在软件设计.编码中对现有问题的一种总结,并从中寻求应对变化的策略. 自己初次接触设计 ...
- tar备份系统
一.概述 前几天我通过SSH正在调戏汤姆猫(tomcat)的时候,服务器上CentOS突然挂了.开机grub,使用光盘linux rescue修复提示找不到linux分区,然后想mount硬盘备份系统 ...
- 观锁与悲观锁(Hibernate)
乐观锁与悲观锁 文章转自网上好像是玉米田的,忘记了 锁( locking ) 业务逻辑的实现过程中,往往需要保证数据访问的排他性.如在金融系统的日终结算 处理中,我们希望针对某个 cut-off 时间 ...
- TCP/IP协议原理与应用笔记03:IP地址分类
1. 事实上,每个IP地址都包含两部分,即网络号和主机号. 例如:202.112.81.34指的 就是202.112.81这个网络的第34号机. 网络号:用于识别主机所在的网络: 主机号:用于识别该网 ...
- jemalloc源码结构分析(二):CPU字节对齐算法
在调用arena_malloc_small过程中,要根据申请内存大小,进行对齐计算,然后分配一个整块儿.算法如下: 1)定义一个SIZE_CLASSES宏,它主要用于生成后面两个表,small_siz ...
- 关于automatic_Panoramic_Image_Stitching_using_Invariant_features 的阅读笔记
并没有都读完,不过感觉还是有必要做一个笔记的,毕竟这只是随笔不是文章,所以可以有多少写多少,也算是工作总结了,最重要的是这个好在可以,完成所有有意义文档的检索,比起自己的word来说高级很多~~~. ...
- C语言——结构体
struct 是一种把一些数据项组合在一起的数据结构.在Go,Rust这些新语言中都保留了结构体 struct 的概念,这是C的精华. 定义匿名结构体 例:学生信息定义为一个结构体,信息内容包括学生的 ...
- JavaScript入门(9)
一.Math对象 Math对象,提供对数据的数学计算 使用Math的属性和方法,代码如下: <script type="text/javascript"> var my ...
- Python(2.7.6) 列表推导式
列表推导式是利用已有的列表导出新的列表,它的工作方式类似于 for 循环. 例如,有一个列表,现在想得到一个对应的列表,使得每个元素是原有列表中元素的平方: >>> [x ** 2 ...