QT 获取本机IP地址

本文详细介绍了如何在一台主机上获取所有网卡的MAC地址和IP地址,包括获取方法和查询本地IP地址的方式,以及通过域名查询本机IP的方法。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

在一台主机上,会同时存在多个网卡,每个网卡都有一个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();

        }
    }
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值