QT 获取本机IP地址

来源:互联网 发布:淘宝office激活原理 编辑:程序博客网 时间:2024/06/10 01:07

在一台主机上,会同时存在多个网卡,每个网卡都有一个mac地址,每个张网卡都有可能配置有IP地址。

获取mac地址:

QList<QNetworkInterface> list = QNetworkInterface::allInterfaces();    QString mac;    foreach(QNetworkInterface i, list) {        mac = i.hardwareAddress();        if ((mac.length() == 17) && (mac != "00:00:00:00:00:00")) {            mac.replace(":", "-");            macAddrs.append(mac);        }    }    qDebug()<<macAddrs;

获取IP地址:

    QStringList adds;    QList<QHostAddress> list = QNetworkInterface::allAddresses();    foreach (QHostAddress address, list) {        if(address.protocol() == QAbstractSocket::IPv4Protocol) {            adds.append(address.toString());        }    }    qDebug()<<"all ips :"<<adds;    return adds;

查询本机IP地址:

通过域名查询系统查询本机IP,此种方法再需要将本机ip告知外界的情况下比较有用。

 QString localHostName = QHostInfo::localHostName();    qDebug() <<"localHostName:"<<localHostName;    QHostInfo info = QHostInfo::fromName(localHostName);    qDebug()<<info.addresses();    foreach(QHostAddress address,info.addresses())    {        if(address.protocol() == QAbstractSocket::IPv4Protocol) {            qDebug() <<"IPV4 Address: "<< address.toString()<<QString("%1").arg(address.toIPv4Address(), 0, 16).toUpper();        }    }
0 0
原创粉丝点击