Как перечислить сетевые адаптеры и получить их MAC-адреса в Win32 API C++?

Это - беспокойство безопасности/конфиденциальности, firefox/mozilla делает его правильно, и Вы не получите способ получить полный путь без дополнения, апплета, Silverlight, флэш-памяти или некоторого другого механизма.

Вот больше информации о позиции Mozilla:

https://developer.mozilla.org/en/Updating_web_applications_for_Firefox_3

Видит раздел по Изменения настроек безопасности-> поля загрузки Файла

, я надеюсь, что IE будет следовать примеру, таким образом, у нас будет последовательная и безопасная среда.

15
задан Cœur 13 March 2018 в 02:52
поделиться

1 ответ

Этот код должен работать:

{
    ULONG outBufLen = 0;
    DWORD dwRetVal = 0;
    IP_ADAPTER_INFO* pAdapterInfos = (IP_ADAPTER_INFO*) malloc(sizeof(IP_ADAPTER_INFO));

    // retry up to 5 times, to get the adapter infos needed
    for( int i = 0; i < 5 && (dwRetVal == ERROR_BUFFER_OVERFLOW || dwRetVal == NO_ERROR); ++i )
    {
        dwRetVal = GetAdaptersInfo(pAdapterInfos, &outBufLen);
        if( dwRetVal == NO_ERROR )
        {
            break;
        }
        else if( dwRetVal == ERROR_BUFFER_OVERFLOW )
        {
            free(pAdapterInfos);
            pAdapterInfos = (IP_ADAPTER_INFO*) malloc(outBufLen);
        }
        else
        {
            pAdapterInfos = 0;
            break;
        }
    }
    if( dwRetVal == NO_ERROR )
    {
        IP_ADAPTER_INFO* pAdapterInfo = pAdapterInfos;
        while( pAdapterInfo )
        {
            IP_ADDR_STRING* pIpAddress = &(pAdapterInfo->IpAddressList);
            while( pIpAddress != 0 )
            {
                          // 
                          // <<<<
                          // here pAdapterInfo->Address should contain the MAC address
                          // >>>>
                          // 

                pIpAddress = pIpAddress->Next;
            }
            pAdapterInfo = pAdapterInfo->Next;
        }
    }
    free(pAdapterInfos);
    return false;
}
11
ответ дан 1 December 2019 в 04:53
поделиться
Другие вопросы по тегам:

Похожие вопросы: