-
大小: 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:“ << pIpAddrString->IpAddress.String << endl;
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:“ << pIpAddrString->IpAddress.String << endl;
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 < cur->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:“ << macStr << endl; // mac地址 16进制字符串表示
cur = cur->Next;
cout << “--------------------------------------------------“ << endl;
}
// 释放空间
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
相关资源
- 基于mfc的多线程文件传输
- C++多线程网络编程Socket
- 计算机二级C语言上机填空,改错,编
- C语言进阶——嵌入式系统高级C语言编
- Qt5串口通信-windows
- 《LINUX C编程从初学到精通》光盘源码
- 嵌入式QtC++编程课件
- 嵌入式c编程语言入门与深入.pdf58199
- C语言模块化编程(我见过最好的)
- 汽车电子编程规范(Unlock-MISRA C 2012)
- 新编Windows API参考大全.doc
- windows hook 框架(detours )
- windows网络编程_文件传输
- 工程库实现面向对象编程
- Windows扩展命令程序(源码)
- LabwindowsCVI 串口编程及事例.docx
- 北京化工大学计算方法(C/C++)讲义
- GCC与汇编保护模式编程三
- 林锐—高质量C编程
- 计算机数据采集卡编程
- GBT 28169-2011 嵌入式软件 C语言编码规范
- XUnZip Zip解压缩.rar
- Windows_API_函数大全 C/C++
- visual c++高级编程及其项目应用开发源
- C语言程序设计教材习题参考答案.do
- 高质量C++/C 编程指南
- c语言编程经典例题100例 word版
- MFC UDP编程
- MX Component V4编程手册
- c++ 编程修养(32条编程建议)
评论
共有 条评论