>>>>>>Hi,
>>>>>>
>>>>>>I use some code to generate a number based on a PC's hard disk serial number and the MAC address. Recently, I have one client out of a couple hundred that this number changes on sporadically. I wrote a program to display what the serial number and MAC address are and the MAC address has changed from a couple weeks ago. The client says the NIC has not been changed.
>>>>>>
>>>>>>I thought the MAC address was tied to the NIC. What could cause this to change?
>>>>>
>>>>>How are you fetching the MAC address?
>>>>
>>>>VFP code:
>>>>
>>>>DECLARE INTEGER GetAdaptersInfo IN iphlpapi ;
>>>>STRING @pAdapterInfo, LONG @pOutBufLen
>>>>
>>>>LOCAL lcBuffer, lnBufsize
>>>>lnBufsize = 0
>>>>lcBuffer = ""
>>>>= GetAdaptersInfo(@lcBuffer, @lnBufsize)
>>>>lcBuffer = Repli(Chr(0), lnBufsize)
>>>>
>>>>IF GetAdaptersInfo(@lcBuffer, @lnBufsize) <> 0 && ERROR_SUCCESS
>>>>* =MESSAGEBOX('MSI Card Not Found',64)
>>>>ENDIF
>>>>
>>>>LOCAL lnAddrlen, lcAddress, ii
>>>>lnAddrlen = Asc(SUBSTR(lcBuffer, 401, 1))
>>>>lcAddress = SUBSTR(lcBuffer, 405, lnAddrlen)
>>>>lcThisID = ''
>>>>lcThisHex = ''
>>>>
>>>>FOR ii = 1 TO lnAddrLen
>>>> lcThisID = lcThisID + ;
>>>> IIF(ii>1, ',' ,'') + ;
>>>> ALLTRIM(STR(ASC(SUBSTR(lcAddress,ii,1))))
>>>>
>>>> lcThisHex = lcThisHex + ;
>>>> IIF(ii>1,':','') + ;
>>>> RIGHT(TRANSFORM(ASC(SUBSTR(lcAddress,ii,1)),'@0'),2)
>>>>ENDFOR
>>>>
>>>>RETURN lcThisHex
>>>
>>>According to the GetAdaptersInfo documentation:
>>>
>>>
In versions prior to Windows 10, the order in which adapters appear in the list returned by this function can be controlled from the Network Connections folder: select the Advanced Settings menu item from the Advanced menu. Starting with Windows 10, the order is unspecified.>>>
>>>Is the system returning the address for a different NIC?
>>
>>I don't know. I'll check if the PC is running windows 10 and if there are multiple NIC s tomorrow
>
>I'm pretty sure Antonio is on the right track. Even a basic PC has multiple virtual adapters defined, plus "real" ones for wired and wireless network connections.
>
>ISTR for best results you basically have to enumerate all MAC addresses, then check that the one you want is present. There is some code that uses WMI in Message#
1358939.
>
>Years ago I asked a similar question and someone posted me some code/PoC that also enumerated all MAC addresses. But, I can't find the messages, I can't recall if it was Win32, Registry or something else.
Thanks Al,
I believe it is the fact that Windows 10 now returns a different adapter randomly with the GetAdaptersInfo() call. I'll be double checking it today and seeing if I can find a solution, possibly using GetAdaptersAddresses if that helps.