• 大小: 0.02M
    文件类型: .rar
    金币: 1
    下载: 0 次
    发布日期: 2024-04-19
  • 语言: C/C++
  • 标签: Pc  信息  网卡  获取  

资源简介

获取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 < pIpAdapterInfo->AddressLength; i++)
if (i < pIpAdapterInfo->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


评论

共有 条评论