网络接口信息获取
QNetwork提供QHostInfo类提供的静态函数,进行主机名的查找,使用OS提供的查找机制获取一个与主机名关联的IP地址或者
获取一个IP地址关联的主机名
QHostInfo中的静态函数fromName(会阻塞并返回QHostInfo一个对象,这个对象的address函数可以获取其主机的IP地址列表)
与lookupHost(异步获取,每找到主机就会发送信号)可以进行主机信息的获取
//QHostInfo 获取主机名查找
QString localHostName = QHostInfo::localHostName();//获取了本地主机名
//通过获取主机名 然后两种方式获取其IP地址
//fromName 寻找主机信息
QHostInfo info = QHostInfo::fromName(localHostName);
info.addresses();//获取与主机名相关的IP地址列表 包含了ipv4与ipv6
//lookupHost查找IP地址QHostInfo::lookupHost(localHostName, this, SLOT(lookedUp(QHostInfo)));void MainWindow::lookedUp(const QHostInfo &host) //对应的槽函数{if (host.error() != QHostInfo::NoError) { //先判断是否出错qDebug() << "Lookup failed:" << host.errorString();return;}
foreach (const QHostAddress &address, host.addresses()) //获取地址qDebug() << "Found address:" << address.toString();}
Qt网络模块中还提供了QNetworkInterface类获取主机的IP地址列表和网络接口信息。
QNetworkInterface类代表了运行当前程序的主机的网络接口。
// 获取所有网络接口的列表
QList<QNetworkInterface> list = QNetworkInterface::allInterfaces();
// 遍历每一个网络接口
foreach (QNetworkInterface interface, list)
{
// 接口名称
qDebug() <<