-
大小: 902KB文件类型: .rar金币: 1下载: 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:Socket编程—TCP服务端和多个客户
- 最新传智播客C/C++第五期完整视频 R
- C++&CLR 编写 Windows 窗体应用程序
- codeblocks-17.12mingw-setup网盘
- 尚观教育李慧芹Linux下C语言前嵌入式
- 理发师睡觉问题
- windows网络编程课程设计源代码
- 基于RFID门禁系统源码 C/C++
- libnfc 1.6 所有工具Windows编译 NFCTools
- vs code C/C++语法高亮配置文件C/C++ The
- Visual C++ 6.0高级编程技术-OpenGL篇 源代
- 8255 键盘接口C语言编程
- MFC多线程编程示例47598
- IDA Plugin Writing in C/C++
- windows串口控件
- 修改Windows路由表源码
- linux下网络编程TCP客户端和服务器端数
- linux环境下C语言编程指南 源代码
- C/C++实现linux和Windows查看系统、进程、
- vc++ 数据采集卡编程
- Viterbi算法c/c++实现
- C/C++ STL参考手册 STL帮助文档 中文/英
- MFC 编程:圣诞节的礼物
- c/c++程序设计课后答案
- vc网络聊天室源代码mfc聊天器VC网络编
- BDS/GPS导航定位C/C++从Txt文件读取和写
- 武汉大学测绘学院大地测量学编程-
- c++网络编程之服务端
- 离散数学c++编程 传递闭包 公式的真值
- [c++中文化编程]之ComboBox组合框的类封
评论
共有 条评论