最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

C++?QT實(shí)現(xiàn)獲取本機(jī)網(wǎng)卡信息

 更新時(shí)間:2024年01月24日 09:36:46   作者:bangtan輝  
這篇文章主要為大家詳細(xì)介紹了如何利用qt自帶的QNetworkInterface接口以及c++Iphlpapi庫,獲取當(dāng)前windows電腦下的網(wǎng)卡信息,需要的可以參考下

本文將利用qt自帶的QNetworkInterface接口以及c++Iphlpapi庫,獲取當(dāng)前windows電腦下的網(wǎng)卡型號(hào)、物理地址、ip地址、子網(wǎng)掩碼、網(wǎng)關(guān)等信息。

#include <QtNetwork/QNetworkInterface>

#include <iostream>
#include <Windows.h>
#include <iphlpapi.h>

#pragma comment(lib, "Iphlpapi.lib")


//獲取對(duì)應(yīng)網(wǎng)卡部分信息
BOOL MatchNetcardInfo(UiNetcardVersion &netcardVer)
{
    PIP_ADAPTER_INFO pIPAdapterInfo = new IP_ADAPTER_INFO();
    PIP_ADAPTER_INFO adapters = nullptr;
    ULONG size = sizeof(IP_ADAPTER_INFO);

    int nRet = GetAdaptersInfo(pIPAdapterInfo, &size);


    //pIPAdapterInfo內(nèi)存不夠,重新申請(qǐng)
    if (ERROR_BUFFER_OVERFLOW == nRet)
    {
        delete pIPAdapterInfo;
        pIPAdapterInfo = (PIP_ADAPTER_INFO)new byte[size];
        nRet = GetAdaptersInfo(pIPAdapterInfo, &size);
    }

    if (ERROR_SUCCESS == nRet)
    {
        adapters = pIPAdapterInfo;
        while (adapters)
        {
            //以XX-XX-XX-XX-XX-XX的形式輸出MAC
            char buf[20]{0};
            sprintf(buf, "%02X:%02X:%02X:%02X:%02X:%02X", adapters->Address[0], adapters->Address[1], adapters->Address[2], adapters->Address[3], adapters->Address[4], adapters->Address[5]);

            QString macTmp = buf;
            if(macTmp != netcardVer.macAddr){
                adapters = adapters->Next;
                continue;
            }

            netcardVer.desc = adapters->Description;
            //可能網(wǎng)卡有多IP,因此通過循環(huán)去判斷
            IP_ADDR_STRING* pIpAddrString = &(adapters->IpAddressList);
            do
            {
                netcardVer.ipAddr = pIpAddrString->IpAddress.String;
                netcardVer.netMask = pIpAddrString->IpMask.String;
                netcardVer.gateway = adapters->GatewayList.IpAddress.String;
                pIpAddrString = pIpAddrString->Next;
            } while (pIpAddrString);

            break;
        }
    }

    //釋放分配的內(nèi)存
    if (pIPAdapterInfo)
        delete pIPAdapterInfo;

    return true;
}

//獲取網(wǎng)卡信息
void GetNetcardInfo(){
    QList<UiNetcardVersion> netcardList;
    netcardList.clear();


    QList<QNetworkInterface> interfaces = QNetworkInterface::allInterfaces();
    foreach(const QNetworkInterface& it, interfaces){

        if(QNetworkInterface::Loopback == it.type())
            continue;

        UiNetcardVersion netcardVer;
        //獲取名稱和mac地址
        netcardVer.name = it.humanReadableName();
        netcardVer.macAddr = it.hardwareAddress();
        //獲取型號(hào)、ip地址、子網(wǎng)掩碼、網(wǎng)關(guān)
        MatchNetcardInfo(netcardVer);
        //添加到容器
        netcardList.append(netcardVer);
    }
}

到此這篇關(guān)于C++ QT實(shí)現(xiàn)獲取本機(jī)網(wǎng)卡信息的文章就介紹到這了,更多相關(guān)C++ QT獲取網(wǎng)卡信息內(nèi)容請(qǐng)搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!

相關(guān)文章

  • C++基于LINUX的文件操作

    C++基于LINUX的文件操作

    這篇文章主要為大家介紹了C++基于LINUX的文件操作示例知識(shí)擴(kuò)充,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進(jìn)步,早日升職加薪
    2023-11-11
  • vscode C++遠(yuǎn)程調(diào)試運(yùn)行(學(xué)習(xí)C++用)

    vscode C++遠(yuǎn)程調(diào)試運(yùn)行(學(xué)習(xí)C++用)

    這篇文章主要介紹了vscode C++遠(yuǎn)程調(diào)試運(yùn)行(學(xué)習(xí)C++用),本文給大家介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或工作具有一定的參考借鑒價(jià)值,需要的朋友可以參考下
    2020-04-04
  • c++結(jié)構(gòu)體排序方式(1條件,多條件)

    c++結(jié)構(gòu)體排序方式(1條件,多條件)

    這篇文章主要介紹了c++結(jié)構(gòu)體排序方式(1條件,多條件),具有很好的參考價(jià)值,希望對(duì)大家有所幫助,如有錯(cuò)誤或未考慮完全的地方,望不吝賜教
    2023-08-08
  • Visual?C++?6.0新建一個(gè)C語言文件的圖文教程

    Visual?C++?6.0新建一個(gè)C語言文件的圖文教程

    本教程適用于C語言初學(xué)者,本文主要介紹了Visual?C++?6.0新建一個(gè)C語言文件的圖文教程,具有一定的參考價(jià)值,感興趣的可以了解一下
    2024-06-06
  • C++ Opencv imfill孔洞填充函數(shù)的實(shí)現(xiàn)思路與代碼

    C++ Opencv imfill孔洞填充函數(shù)的實(shí)現(xiàn)思路與代碼

    在Matlab下,使用imfill可以很容易的完成孔洞填充操作,下面這篇文章主要給大家介紹了關(guān)于C++ Opencv imfill孔洞填充函數(shù)的實(shí)現(xiàn)思路與代碼,文中通過示例代碼介紹的非常詳細(xì),需要的朋友可以參考下
    2021-09-09
  • C++封裝IATHOOK類實(shí)例

    C++封裝IATHOOK類實(shí)例

    這篇文章主要介紹了C++封裝IATHOOK類的實(shí)現(xiàn)方法,對(duì)IAT的HOOK實(shí)例進(jìn)行了封裝,非常具有實(shí)用價(jià)值,需要的朋友可以參考下
    2014-10-10
  • C++?OpenCV實(shí)現(xiàn)二維碼檢測(cè)功能

    C++?OpenCV實(shí)現(xiàn)二維碼檢測(cè)功能

    這篇文章主要介紹了如何利用C++?OpenCV實(shí)現(xiàn)二維碼檢測(cè)功能,文中的示例代碼講解詳細(xì),感興趣的小伙伴可以跟隨小編一起學(xué)習(xí)一下
    2022-01-01
  • 一文搞懂C++中的四種強(qiáng)制類型轉(zhuǎn)換

    一文搞懂C++中的四種強(qiáng)制類型轉(zhuǎn)換

    很多朋友向小編了解C語言中怎么進(jìn)行強(qiáng)制類型轉(zhuǎn)換呢?在這小編告訴大家強(qiáng)制類型轉(zhuǎn)換可以分為兩種,一種是隱式類型轉(zhuǎn)換一種是顯示類型轉(zhuǎn)換,下面通過示例代碼給大家介紹下,需要的朋友參考下吧
    2021-07-07
  • 談?wù)凜++中的單例

    談?wù)凜++中的單例

    這篇文章主要介紹了C++中單例的相關(guān)資料,幫助大家更好的理解和學(xué)習(xí)c++,感興趣的朋友可以了解下
    2020-09-09
  • 利用QT設(shè)計(jì)秒表功能

    利用QT設(shè)計(jì)秒表功能

    這篇文章主要為大家詳細(xì)介紹了利用QT設(shè)計(jì)秒表功能,文中示例代碼介紹的非常詳細(xì),具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下
    2022-08-08

最新評(píng)論

曲周县| 青铜峡市| 饶河县| 出国| 武胜县| 潞城市| 沂源县| 运城市| 深州市| 奇台县| 洞头县| 富蕴县| 汝城县| 南华县| 同江市| 白银市| 屏山县| 嵊州市| 东城区| 宣恩县| 横峰县| 睢宁县| 亚东县| 蓝山县| 文安县| 浏阳市| 包头市| 肇庆市| 双鸭山市| 甘孜县| 临沂市| 融水| 贵德县| 台江县| 商南县| 常州市| 始兴县| 湟中县| 牙克石市| 安福县| 宣化县|