資源簡介
獲取pc上所有網卡信息
代碼片段和文件信息
//?GetMacAdress.cpp?:?Defines?the?entry?point?for?the?console?application.
//
//?頭文件包含
#include?“stdafx.h“
#include?
#include?
#include?
using?namespace?std;
#pragma?comment(lib“Iphlpapi.lib“)?//需要添加Iphlpapi.lib庫
int?main(int?argc?char*?argv[])
{
//PIP_ADAPTER_INFO結構體指針存儲本機網卡信息
PIP_ADAPTER_INFO?pIpAdapterInfo?=?new?IP_ADAPTER_INFO();
//得到結構體大小用于GetAdaptersInfo參數
unsigned?long?stSize?=?sizeof(IP_ADAPTER_INFO);
//調用GetAdaptersInfo函數填充pIpAdapterInfo指針變量;其中stSize參數既是一個輸入量也是一個輸出量
int?nRel?=?GetAdaptersInfo(pIpAdapterInfo&stSize);
//記錄網卡數量
int?netCardNum?=?0;
//記錄每張網卡上的IP地址數量
int?IPnumPerNetCard?=?0;
if?(ERROR_BUFFER_OVERFLOW?==?nRel)
{
//如果函數返回的是ERROR_BUFFER_OVERFLOW
//則說明GetAdaptersInfo參數傳遞的內存空間不夠同時其傳出stSize表示需要的空間大小
//這也是說明為什么stSize既是一個輸入量也是一個輸出量
//釋放原來的內存空間
delete?pIpAdapterInfo;
//重新申請內存空間用來存儲所有網卡信息
pIpAdapterInfo?=?(PIP_ADAPTER_INFO)new?BYTE[stSize];
//再次調用GetAdaptersInfo函數填充pIpAdapterInfo指針變量
nRel=GetAdaptersInfo(pIpAdapterInfo&stSize);????
}
if?(ERROR_SUCCESS?==?nRel)
{
//輸出網卡信息
//可能有多網卡因此通過循環去判斷
while?(pIpAdapterInfo)
{
cout<<“網卡數量:“<<++netCardNum< cout<<“網卡名稱:“<AdapterName< cout<<“網卡描述:“<Description< switch(pIpAdapterInfo->Type)
{
case?MIB_IF_TYPE_OTHER:
cout<<“網卡類型:“<<“OTHER“< break;
case?MIB_IF_TYPE_ETHERNET:
cout<<“網卡類型:“<<“ETHERNET“< break;
case?MIB_IF_TYPE_TOKENRING:
cout<<“網卡類型:“<<“TOKENRING“< break;
case?MIB_IF_TYPE_FDDI:
cout<<“網卡類型:“<<“FDDI“< break;
case?MIB_IF_TYPE_PPP:
printf(“PP\n“);
cout<<“網卡類型:“<<“PPP“< break;
case?MIB_IF_TYPE_LOOPBACK:
cout<<“網卡類型:“<<“LOOPBACK“< break;
case?MIB_IF_TYPE_SLIP:
cout<<“網卡類型:“<<“SLIP“< break;
case?71:
cout<<“網卡類型:“<<“WireLess“< break;
default:
break;
}
cout<<“網卡MAC地址:“;
for?(DWORD?i?=?0;?i?AddressLength;?i++)
if?(i?AddressLength-1)
{
printf(“%02X-“?pIpAdapterInfo->Address[i]);
}
else
{
printf(“%02X\n“?pIpAdapterInfo->Address[i]);
}
cout<<“網卡IP地址如下:“< //可能網卡有多IP因此通過循環去判斷
IP_ADDR_STRING?*pIpAddrString?=&(pIpAdapterInfo->IpAddressList);
do?
{
cout<<“該網卡上的IP數量:“<<++IPnumPerNetCard< cout<<“IP?地址:“<IpAddress.String< cout<<“子網地址:“<IpMask.String< cout<<“網關地址:“<GatewayList.IpAddress.String< pIpAddrString=pIpAddrString->Next;
}?while?(pIpAddrString);
pIpAdapterInfo?=?pIpAdapterInfo->Next;
cout<<“--------------------------------------------------------------------“< }
}
//釋放內存空間
if?(pIpAdapterInfo)
{
delete?pIpAdapterInfo;
}
getchar();
return?0;
}
?屬性????????????大小?????日期????時間???名稱
-----------?---------??----------?-----??----
?????文件???????3273??2020-12-24?14:57??GetMacAdress\GetMacAdress.cpp
?????文件???????4376??2019-09-23?11:05??GetMacAdress\GetMacAdress.vcxproj
?????文件???????1336??2019-09-23?11:05??GetMacAdress\GetMacAdress.vcxproj.filters
?????文件????????143??2019-09-23?11:05??GetMacAdress\GetMacAdress.vcxproj.user
?????文件???????1750??2019-09-23?11:05??GetMacAdress\ReadMe.txt
?????文件????????299??2019-09-23?11:05??GetMacAdress\stdafx.cpp
?????文件????????320??2019-09-23?11:05??GetMacAdress\stdafx.h
?????文件????????314??2019-09-23?11:05??GetMacAdress\targetver.h
?????文件????????903??2019-09-23?11:05??GetMacAdress.sln
????..A..H.?????13824??2020-12-24?14:57??GetMacAdress.suo
?????文件??????40960??2019-09-23?11:51??Debug\GetMacAdress.exe
?????目錄??????????0??2020-12-24?14:57??GetMacAdress
?????目錄??????????0??2020-12-24?14:56??Debug
-----------?---------??----------?-----??----
????????????????67498????????????????????13
- 上一篇:WINCC-C腳本大全
- 下一篇:WINcc與海康威視攝像頭
評論
共有 條評論