CString csMylocalIP,<span style="font-family: Arial, Helvetica, sans-serif;">csMyclocalMac;</span>
<span style="font-family:Arial, Helvetica, sans-serif;">GetLocoalIPandMac(</span><span style="font-family: Arial, Helvetica, sans-serif;">csMylocalIP</span><span style="font-family: Arial, Helvetica, sans-serif;">,</span><span style="font-family: Arial, Helvetica, sans-serif;">csMyclocalMac</span><span style="font-family: Arial, Helvetica, sans-serif;">);</span><span style="font-family:Arial, Helvetica, sans-serif;">
</span>
bool yourClassName::GetLocoalIPandMac(CString& csIP,CString& myMac)
{
// UCHAR MacAddress[6];
bool bNetReady = false;
ULONG outBufLen = 0;
DWORD dwRetVal = 0;
PIP_ADAPTER_INFO pAdapterInfo;
PIP_ADAPTER_INFO pAdapterInfoTmp = NULL;
pAdapterInfo = (IP_ADAPTER_INFO*)GlobalAlloc(GMEM_ZEROINIT, sizeof(IP_ADAPTER_INFO));
ULONG ulOutBufLen = sizeof(IP_ADAPTER_INFO);
if(GetAdaptersInfo(pAdapterInfo, &ulOutBufLen) != ERROR_SUCCESS)
{
GlobalFree (pAdapterInfo);
pAdapterInfo = (IP_ADAPTER_INFO*)GlobalAlloc(GMEM_ZEROINIT, ulOutBufLen);
}
if((dwRetVal = GetAdaptersInfo(pAdapterInfo, &ulOutBufLen)) == NO_ERROR)
{
pAdapterInfoTmp = pAdapterInfo;
csIP = "";
/*dwIP = 0;
dwMask = 0;*/
while(pAdapterInfoTmp)
{
if(pAdapterInfoTmp->Type == MIB_IF_TYPE_ETHERNET)
{
if(pAdapterInfoTmp->CurrentIpAddress)
{
csIP = pAdapterInfoTmp->CurrentIpAddress->IpAddress.String;
/*dwIP = inet_addr(pAdapterInfoTmp->CurrentIpAddress->IpAddress.String);
dwMask = inet_addr(pAdapterInfoTmp->CurrentIpAddress->IpMask.String);*/
}
else
{
csIP = pAdapterInfoTmp->IpAddressList.IpAddress.String;
/*dwIP = inet_addr(pAdapterInfoTmp->IpAddressList.IpAddress.String);
dwMask = inet_addr(pAdapterInfoTmp->IpAddressList.IpMask.String);*/
}
}
if(!csIP.IsEmpty() && (csIP.CompareNoCase(_T("0.0.0.0")) != 0))
{
bNetReady = true;
myMac.Format(_T("%02X%02X%02X%02X%02X%02X"),
pAdapterInfoTmp->Address[0],
pAdapterInfoTmp->Address[1],
pAdapterInfoTmp->Address[2],
pAdapterInfoTmp->Address[3],
pAdapterInfoTmp->Address[4],
pAdapterInfoTmp->Address[5]);
break;
}
pAdapterInfoTmp = pAdapterInfoTmp->Next;
}
}
GlobalFree (pAdapterInfo);
return bNetReady;
}