资源简介
获取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
- 上一篇:WINCC-C脚本大全
- 下一篇:WINcc与海康威视摄像头
相关资源
- C语言封装的HttpClient接口
- opc ua客户端
- C语言实现 设备信息管理系统
- 信息学奥赛c++第一阶课件.pptx
- 职工信息管理系统源码(控制台)
- 信息学奥赛一本通——算法部分
- 花草信息管理系统.c
- 公司人员月薪级别信息管理系统.cpp
- 基于LPC2132的蛇形机器人前端执行机构
- CrystalDiskInfo-HDD/SSD硬盘信息,SMART信息
- pcm转换成wav
- CTP上期技术平台API及C#封装更新到CT
- RC522射频模块读取S50卡中信息并通过
- 课程设计: MFC 学生信息管理系统
- c语言课程设计-职工信息管理系统-单
- 信息学奥赛普及组2011年到2016年C++真题
- 学校信息管理系统(C++版[原创])
- pcm语音编码
- 用c写的航空订票系统 航班信息改变
- 信息论课程设计——LZW编码
- 线性表用链表实现学生信息系统
- C语言学生成绩管理信息系统
- 网络流量统计系统的设计与实现 win
- 职工信息管理系统C 链表
- Dev-C++ V5.7.1中文版(32位64;位)_C++ 开
- PCA、KPCA数据降维C++实现
- 校园卡信息管理系统
- 图书信息管理系统 vs 图形界面
- C++MFC数据库职工信息管理系统,实现
- c++大学课程设计——家教信息系统
评论
共有 条评论