[原blog文章]获取网卡信息(一)
来源:互联网 发布:云计算开发工程师 技能 编辑:程序博客网 时间:2024/04/29 22:36
本系列共两篇文章, 本文罗列代码(函数). 可以拿来直接使用的函数. 不过要加上另外一篇文章中提供的 .h 文件才行....
有错别字(母),请自行更正. 其中 MAX_IP 可以定义为 16 .随你便,只要能保存到***.***.***.*** 就行. :D
//^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
/*******************************************************************
* 函数名称:GetLocalIP
* 功能描述: 获取网卡信息
* 参数列表:
* szIPAddr: 保存ip地址
* szIPMask: 保存子网掩码
* GateWay: 保存网关
* myMac: 保存mac地址
* 文件支持:
* #include "drIPHlpApi.h" //我组织的头文件, 在另外一篇文章中有说明.
* #include "stdio.h"
* #include "winsock2.h"
* 完成操作:
* 获取网卡的ip地址, 子网掩码, 网关, mac地址
* 说明:
* 处理失误, 只能读取到一组信息, 就是说双网卡就会漏掉东西
* 返回结果:
* 如上.
********************************************************************/
void GetLocalIP(char szIPAddr[MAX_IP], char szIPMask[MAX_IP], CHAR myMac[7], CHAR GateWay[MAX_IP])
{
HINSTANCE iphlpapi_dll;
iphlpapi_dll = LoadLibrary("iphlpapi.dll");
if(iphlpapi_dll == NULL)
{
cout<<"加载iphlpapi.dll出错"<<endl;
return;
}
lpGetAdaptersInfo = (GAI)GetProcAddress(iphlpapi_dll, "GetAdaptersInfo");
DWORD dwRet;
ULONG ulLen=6;
PIP_ADAPTER_INFO pAdapterInfo=0,pTmp=0;
dwRet = lpGetAdaptersInfo(pAdapterInfo, &ulLen);
if(dwRet != ERROR_BUFFER_OVERFLOW)
{
cout<<"不溢出才怪!"<<endl;
return;
}
pAdapterInfo = (PIP_ADAPTER_INFO)malloc(ulLen);
if(!pAdapterInfo)
{
cout<<"分配空间失败"<<endl;
return;
}
dwRet = lpGetAdaptersInfo(pAdapterInfo, &ulLen);
if(dwRet != ERROR_SUCCESS)
{
cout<<"获取网卡信息失败!"<<endl;
return;
}
pTmp = pAdapterInfo;
memcpy(myMac,pTmp->Address,6); //get the mac
memcpy(szIPAddr, (void *)&pTmp->IpAddressList.IpAddress, 16); //get the ip
memcpy(szIPMask, (void *)&pTmp->IpAddressList.IpMask, 16); //get the mask
memcpy(GateWay,(void *)&pTmp->GatewayList.IpAddress,16); //get the gateway
return;
}
//^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
- [原blog文章]获取网卡信息(一)
- [原blog文章]获取网卡信息(二)
- [原blog文章]qq无法即时收到信息
- [原blog文章]胡思乱想
- 获取网卡信息
- 获取网卡信息
- 获取网卡相关信息
- VB6获取网卡信息
- 获取网卡信息 VC
- 获取网卡信息
- 获取网卡信息
- ioctl获取网卡信息
- 获取网卡信息
- 获取适配器网卡信息
- VC 获取网卡信息
- Linux 获取网卡信息
- Linux获取网卡信息
- 获取网卡驱动信息
- 想成为嵌入式程序员应知道的0x10个基本问题
- C语言的学习方法
- XML 简明教程
- Matt Pietrek's new article on debugging on x64
- 昨天你回去了!
- [原blog文章]获取网卡信息(一)
- [原blog文章]获取网卡信息(二)
- oracle的卸载
- 不间断滚动代码,可支持N多个同时滚动
- 微软公司软件开发模式简介--收集
- MFC中销毁Windows对象需要注意的问题
- MFC 文档 视图 和 框架 的建立(Document View and Frame Vork)
- Oracle的体系结构
- 程序开发团队---组建团队篇