日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程语言 > c/c++ >内容正文

c/c++

C/C++:Windows编程—代码获取本地所有网卡信息(网卡描述,IP地址,子网掩码,MAC地址)

發布時間:2025/3/15 c/c++ 34 豆豆
生活随笔 收集整理的這篇文章主要介紹了 C/C++:Windows编程—代码获取本地所有网卡信息(网卡描述,IP地址,子网掩码,MAC地址) 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

先看效果

看代碼

使用 GetAdaptersInfo 函數獲取網卡的所有信息。
MSDN函數說明 https://docs.microsoft.com/en-us/windows/desktop/api/iphlpapi/nf-iphlpapi-getadaptersinfo

#include <iostream> #include <vector> #include <WinSock2.h> #include <Iphlpapi.h> //#pragma comment(lib,"Iphlpapi.lib") //需要Iphlpapi.lib庫 ,devc++中 項目 -> 項目選項-> 參數 -> 添加鏈接庫 libiphlpapi.a (D:\Program Files (x86)\Dev-Cpp\MinGW64\x86_64-w64-mingw32\lib\libiphlpapi.a) using namespace std;static const int ADAPTERNUM = 10; void getAllAdapterInfo(){PIP_ADAPTER_INFO pIpAdapterInfo = new IP_ADAPTER_INFO[ADAPTERNUM];// 10個網卡空間 足夠了 unsigned long stSize = sizeof(IP_ADAPTER_INFO) * ADAPTERNUM;// 獲取所有網卡信息,參數二為輸入輸出參數 int nRel = GetAdaptersInfo(pIpAdapterInfo,&stSize);// 空間不足if (ERROR_BUFFER_OVERFLOW == nRel) {// 釋放空間if(pIpAdapterInfo!=NULL)delete[] pIpAdapterInfo;return; }PIP_ADAPTER_INFO cur = pIpAdapterInfo;// 多個網卡 通過鏈表形式鏈接起來的 while(cur){cout<<"網卡描述:"<<cur->Description<<endl;switch (cur->Type) {case MIB_IF_TYPE_OTHER:break;case MIB_IF_TYPE_ETHERNET:{IP_ADDR_STRING *pIpAddrString =&(cur->IpAddressList);cout << "IP:" << pIpAddrString->IpAddress.String << endl;cout << "子網掩碼:" << pIpAddrString->IpMask.String <<endl;}break;case MIB_IF_TYPE_TOKENRING:break;case MIB_IF_TYPE_FDDI:break;case MIB_IF_TYPE_PPP:break;case MIB_IF_TYPE_LOOPBACK:break;case MIB_IF_TYPE_SLIP:break;default://無線網卡,Unknown type{IP_ADDR_STRING *pIpAddrString =&(cur->IpAddressList);cout << "IP:" << pIpAddrString->IpAddress.String << endl;cout << "子網掩碼:" << pIpAddrString->IpMask.String <<endl;}break;}char hex[16] = {'0','1','2','3','4','5','6','7','8','9','A','B','C','D','E','F'} ;// mac 地址一般6個字節 // mac 二進制轉16進制字符串char macStr[18] = {0};//12+5+1int k = 0;for(int j = 0; j < cur->AddressLength; j++){macStr[k++] = hex[(cur->Address[j] & 0xf0) >> 4];macStr[k++] = hex[cur->Address[j] & 0x0f];macStr[k++] = '-'; } macStr[k-1] = 0;cout<<"MAC:" << macStr << endl; // mac地址 16進制字符串表示 cur = cur->Next;cout << "--------------------------------------------------" << endl;}// 釋放空間if(pIpAdapterInfo!=NULL)delete[] pIpAdapterInfo; } int main(int argc, char* argv[]) {getAllAdapterInfo();return 0; }

項目工程

如果你的跑不起來,可以下載完整devc++的項目代碼。

總結

以上是生活随笔為你收集整理的C/C++:Windows编程—代码获取本地所有网卡信息(网卡描述,IP地址,子网掩码,MAC地址)的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。