QT获取本机IP和Mac地址

Posted xupeidong

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了QT获取本机IP和Mac地址相关的知识,希望对你有一定的参考价值。

#include <QNetworkInterface>
#include <QList>

void MainWindow::getIPPath()
{

    QString strIpAddress;

    QList<QHostAddress> ipAddressesList = QNetworkInterface::allAddresses();

    // 获取第一个本主机的IPv4地址

    int nListSize = ipAddressesList.size();

    for (int i = 0; i < nListSize; ++i)

    {

        if (ipAddressesList.at(i) != QHostAddress::LocalHost && ipAddressesList.at(i).toIPv4Address())
        {

            strIpAddress = ipAddressesList.at(i).toString();

            break;

        }

    }

    // 如果没有找到,则以本地IP地址为IP

    if (strIpAddress.isEmpty())
    {
        qDebug() << strIpAddress;
        strIpAddress = QHostAddress(QHostAddress::LocalHost).toString();
    }
    qDebug() << "IP:" << strIpAddress;
}

void MainWindow::getMacPath()
{
    QList<QNetworkInterface> nets = QNetworkInterface::allInterfaces();// 获取所有网络接口列表

    int nCnt = nets.count();

    QString strMacAddr = "";

    for(int i = 0; i < nCnt; i ++)

    {

        // 如果此网络接口被激活并且正在运行并且不是回环地址,则就是我们需要找的Mac地址

        if(nets[i].flags().testFlag(QNetworkInterface::IsUp) && nets[i].flags().testFlag(QNetworkInterface::IsRunning) && !nets[i].flags().testFlag(QNetworkInterface::IsLoopBack))

        {

            strMacAddr = nets[i].hardwareAddress();

            break;

        }

    }
    qDebug() << "Mac:" << strMacAddr;
}

  

以上是关于QT获取本机IP和Mac地址的主要内容,如果未能解决你的问题,请参考以下文章

获取本机的IP地址和mac地址

Qt获取本机网络信息

java获取本机IP地址和MAC地址的方法

Qt之获取本机网络信息(MAC, IP等等,很全)

获取本机IP和MAC地址

Qt获取本机ip地址