共享空间 » 日志 » 获取本机IP及网卡信息
获取本机IP及网卡信息
Ж风之羽Ж 发表于 2008-07-21 11:39:12
PIP_ADAPTER_INFO pinfo=NULL;
unsigned long len=0;
if (pinfo!=NULL)
delete (pinfo);
unsigned long nError;
//获得本地计算机的MAC地址,第一次是取不到的,下面第2次循环才可以获取到信息
MacInfo info;
nError = GetAdaptersInfo(pinfo,&len);
if (nError==0)
{
do
{
sprintf(info.MacAddress, "%02X-%02X-%02X-%02X-%02X-%02X",
pinfo->Address[0],
pinfo->Address[1],
pinfo->Address[2],
pinfo->Address[3],
pinfo->Address[4],
pinfo->Address[5]);
}
while((pinfo = pinfo->Next) != NULL);
}
if (nError==ERROR_BUFFER_OVERFLOW)
{
//pinfo包含的相关信息可以根据自己的需要取
pinfo= (PIP_ADAPTER_INFO)malloc(len);
nError = GetAdaptersInfo(pinfo,&len);
if (nError==0)
{
do
{
sprintf(info.MacAddress, "%02X-%02X-%02X-%02X-%02X-%02X",
pinfo->Address[0],
pinfo->Address[1],
pinfo->Address[2],
pinfo->Address[3],
pinfo->Address[4],
pinfo->Address[5]);
sprintf(info.MacDescribe,pinfo->Description);
sprintf(info.IPAddress,pinfo->IpAddressList.IpAddress.String);
//这里用了成员变量来保存取到的信息
m_vMacaddress.push_back(info);
}
//循环获取,很多机器都有多个网卡
while((pinfo = pinfo->Next) != NULL);
}
}
if (pinfo!=NULL)
{
delete (pinfo);
}
