Qt获取本机网络信息
Posted citrus
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Qt获取本机网络信息相关的知识,希望对你有一定的参考价值。
目的:
获取本机的主机名、IP地址、硬件地址等网络信息。
工具:
使用Qt提供的网络模块QtNetwork;
使用Qt提供的类QHostInfo、QNetworkInterface、QNetworkAddressEntry。
代码:
获取本机主机名和IP地址
void NetworkInformation::getHostInformation() { //获取本机主机名 QString localHostName = QHostInfo::localHostName(); LineEditLocalHostName->setText(localHostName); //通过本机主机名获取IP地址 QHostInfo hostInfo = QHostInfo::fromName(localHostName); QList<QHostAddress> listAddress = hostInfo.addresses(); if(!listAddress.isEmpty()) { LineEditAddress->setText(listAddress.first().toString()); } }
获取本机更加详细的信息
void NetworkInformation::slotDetail() { QString detail = ""; //获取主机IP地址和网络接口列表 QList<QNetworkInterface> list = QNetworkInterface::allInterfaces(); for(int i = 0; i < list.count(); i++) { QNetworkInterface interface = list.at(i); //获取网络接口名称 detail = detail + tr("设备:") + interface.name() + " "; //获取网络接口的硬件地址 detail = detail + tr("硬件地址:") + interface.hardwareAddress() + " "; //获取网络接口对应的IP地址(IPv4和IPv6)、子网掩码、广播地址 QList<QNetworkAddressEntry> entryList = interface.addressEntries(); for(int j = 0; j < entryList.count(); j++) { QNetworkAddressEntry entry = entryList.at(j); detail = detail + " " + tr("IP 地址:") + entry.ip().toString() + " "; detail = detail + " " + tr("子网掩码:") + entry.netmask().toString() + " "; detail = detail + " " + tr("广播地址:") + entry.broadcast().toString() + " "; } } QMessageBox::information(this, tr("Detail"), detail); }
以上是关于Qt获取本机网络信息的主要内容,如果未能解决你的问题,请参考以下文章
vb.net 第一节 获取本机网络适配器的信息 GetAdaptersInfo