-
大小: 902KB文件類型: .rar金幣: 2下載: 0 次發布日期: 2021-05-12
- 語言: C/C++
- 標簽: Windows??編程??C/C++??GetAdaptersI??
資源簡介
https://blog.csdn.net/qq_29542611/article/details/84711243
C/C++:Windows編程—代碼獲取本地所有網卡信息(網卡描述,IP地址,子網掩碼,MAC地址) 示例程序demo

代碼片段和文件信息
#include?
#include?
#include?
#include?
//#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<<“網卡描述:“<Description< switch?(cur->Type)?{
case?MIB_IF_TYPE_OTHER:
break;
case?MIB_IF_TYPE_ETHERNET:
{
IP_ADDR_STRING?*pIpAddrString?=&(cur->IpAddressList);
cout?<“IP:“?<IpAddress.String?< cout?<“子網掩碼:“?< pIpAddrString->IpMask.String?< }
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:“?<IpAddress.String?< cout?<“子網掩碼:“?< pIpAddrString->IpMask.String?< }
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+1
int?k?=?0;
for(int?j?=?0;?j?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:“?< cur?=?cur->Next;
cout?<“--------------------------------------------------“?< }
//?釋放空間
if(pIpAdapterInfo!=NULL)
delete[]?pIpAdapterInfo;
}?
int?main(int?argc?char*?argv[])
{
getAllAdapterInfo();
return?0;
}
?屬性????????????大小?????日期????時間???名稱
-----------?---------??----------?-----??----
?????文件???????2410??2018-12-02?13:57??IP_MAC_Map\main.cpp
?????文件????1090615??2018-12-02?13:57??IP_MAC_Map\main.o
?????文件???????1290??2018-12-02?13:57??IP_MAC_Map\Makefile.win
?????文件???????1023??2018-11-30?16:19??IP_MAC_Map\獲取網卡及IP.dev
?????文件????3009771??2018-12-02?13:57??IP_MAC_Map\獲取網卡及IP.exe
?????文件?????????93??2018-12-01?22:09??IP_MAC_Map\獲取網卡及IP.layout
?????目錄??????????0??2018-12-02?13:57??IP_MAC_Map
-----------?---------??----------?-----??----
??????????????4105202????????????????????7
評論
共有 條評論