获取有线网卡的物理地址

BOOL GetMacAddress(UCHAR MacAddress[8])
{
	BOOL bRet = FALSE;
	PIP_ADAPTER_INFO lpAdapterInfo = NULL;
	ULONG nSize = 0;

	if (GetAdaptersInfo(lpAdapterInfo, &nSize) == ERROR_BUFFER_OVERFLOW)
	{
		if (lpAdapterInfo = (PIP_ADAPTER_INFO)GlobalAlloc(GPTR, nSize))
		{
			if (GetAdaptersInfo(lpAdapterInfo, &nSize) == ERROR_SUCCESS)
			{
				for (PIP_ADAPTER_INFO pos = lpAdapterInfo; pos; pos = pos->Next)
				{
					if (pos->Type == MIB_IF_TYPE_ETHERNET)
					{
						HKEY hKey = NULL;
						TCHAR RegPath[MAX_PATH];

						wsprintf(RegPath, TEXT("SYSTEM\\CurrentControlSet\\Control\\Network\\{4D36E972-E325-11CE-BFC1-08002BE10318}\\")
#ifdef UNICODE
							TEXT("%S")
#else
							TEXT("%s")
#endif
							TEXT("\\Connection"), pos->AdapterName
							);
						if (RegOpenKeyEx(HKEY_LOCAL_MACHINE, RegPath, 0, KEY_READ, &hKey) == ERROR_SUCCESS)
						{
							TCHAR szText[MAX_PATH];
							DWORD cbSize = sizeof(szText);

							if (RegQueryValueEx(hKey, TEXT("PnPInstanceId"), NULL, NULL, (PBYTE)szText, &cbSize) == ERROR_SUCCESS)
							{
								if (_tcsnicmp(szText, TEXT("pci\\"), 4) == 0)
								{
									bRet = TRUE;
								}
							}
							RegCloseKey(hKey);
						}
					}
					if (bRet)
					{
						for (UINT i = 0; i < 8; i++)
						{
							MacAddress[i] = pos->Address[i];
						}
						break;//for
					}
				}
			}
			GlobalFree(lpAdapterInfo);
		}
	}
	return bRet;
}

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值