废话不多说,直接上代码:
#include <WinSock2.h>
#include <Iphlpapi.h>
#include <iostream>
using namespace std;
#pragma comment(lib,"Iphlpapi.lib") //需要添加Iphlpapi.lib库
int main(int argc, char* argv[])
{
PIP_ADAPTER_INFO pIpAdapterInfo = new IP_ADAPTER_INFO();
unsigned long stSize = sizeof(IP_ADAPTER_INFO);
int nRel = GetAdaptersInfo(pIpAdapterInfo, &stSize);
int netCardNum = 0;
int IPnumPerNetCard = 0;
if (ERROR_BUFFER_OVERFLOW == nRel){
delete pIpAdapterInfo;
pIpAdapterInfo = (PIP_ADAPTER_INFO)new BYTE[stSize];
nRel = GetAdaptersInfo(pIpAdapterInfo, &stSize);
}
if (ERROR_SUCCESS == nRel){
while (pIpAdapterInfo) {
cout << "网卡名称:" << pIpAdapterInfo->AdapterName << endl;
do{
HKEY cpp_key;
std::string cpp_data = "SYSTEM\\CurrentControlSet\\Control\\Network\\{4D36E972-E325-11CE-BFC1-08002BE10318}\\";
cpp_data += pIpAdapterInfo->AdapterName;
cpp_data += "\\Connection";
if (ERROR_SUCCESS == Reg

本文介绍了一种使用C++编程语言通过WinSock2.h和Iphlpapi.h库获取本地计算机所有网卡的名称、IP地址、子网掩码和默认网关的方法。同时,为了解决GetAdaptersInfo返回的网卡名称为UUID而非实际名称的问题,文章还详细解释了如何通过注册表查询对应的真实网卡名称。

1334

被折叠的 条评论
为什么被折叠?



