QT获取本地网络信息
开发工具与关键技术:QtCreator、C++
作者:何任贤
撰写时间:2020年06月10日
获取本机网络信息要在工程文件(.Pro)加上
QT += network
然后就是要引入的类
#include
#include
#include
#include
QHostInfo类为主机信息类,为主机名查找提供静态函数
QHostAddress类为主机地址类,管理IPV4或IPV6地址信息。
QNetworkInterface类为网络接口类,提供主机IP地址和网络接口的列表。
QNetworkAddressEntry类为网络地址实体,存储网络接口支持的一个IP地址及其 关联的网络掩码和广播地址。
QHostInfo是获取本机名称和ip地址的
获取本机名称:
QHostInfo::fromName(loaclHostName);
获取ip地址
QHostInfo::fromName(loaclHostName);
并且我们还可以获得一些网址的ip地址
QHostInfo::fromName(“www.baidu.com”);
这样我们可以获取到百度的ip地址
上面这个就百度的ip地址
我们在浏览器输入这个ip地址可以跳转到百度搜索页面。
下面是获取本地网络接口的获取方式
foreach (QNetworkInterface interface, interfaceList)
{
//获取网络接口信息
msgStr += tr(“硬件地址:%1\n”).arg(interface.hardwareAddress());
msgStr += tr(“可读名称:%1\n”).arg(interface.humanReadableName());
msgStr += tr(“名称:%1\n”).arg(interface.name());
msgStr += tr("\n");
//获取网络接口对应的网络地址实体
QList<QNetworkAddressEntry> entryList = interface.addressEntries();
foreach (QNetworkAddressEntry entry, entryList)
{
//获取网络地址实体
msgStr += tr("\tip地址:%1\n").arg(entry.ip().toString());
msgStr += tr("\t子网掩码:%1\n").arg(entry.netmask().toString());
msgStr += tr("\t广播地址:%1\n").arg(entry.broadcast().toString());
}
}
上面这个就是本地网络信息我们可以从可读名称知道是什么网络的信息。
我们可以看到有WLAN、本地连接1、本地连接2、以太网1、以太网2。
其中以太网是大家最熟悉的,至于他们的区别,有兴趣的可以自己去了解。