Получение MAC-адреса машины — хорошее решение?

Я услышал, что это не возможно с моей текущей библиотекой winpcap.

Это действительно верно? Я вижу много примеров в сети, но затем комментирует высказывание, "Это не работает".

Что лучший способ состоит в том, чтобы получить MAC-адрес локальной машины?

5
задан bobber205 15 January 2010 в 07:06
поделиться

3 ответа

Я использовал GEDIT с помощью Syntax Highlighting выбранной и Bash Shell для компиляции и тестирования. Я держу версию Linux Browser Google Chrome Browser, работающую локальную копию документации Go. Под Xubuntu Window Manager я могу перевернуть окно браузера вверх и вниз из строки заголовка, когда мне нужно посмотреть на пакет API.

Пройдите компилирование и ссылки очень быстро - я так же продуктивным с этим набором инструментов, так как я когда-либо использовал Java и C # IDes. Вид обновления для записи программного обеспечения с просто «каменными ножами и медведями».

-121--1382791-

Один общий метод использует биты из UUID, но это не совсем надежно. Например, он вернет значение даже на машине, у которой нет сетевого адаптера.

К счастью, есть способ, который работает в зависимости от любой достаточно недавней версии Windows. MSDN говорит, что он возвращается в Windows 2000, но если служит памятью, она также работает на NT 4, начиная с SP 5, начать все еще использовать NT 4.

#include <windows.h>
#include <iphlpapi.h>
#include <stdio.h>

int main() {         
    IP_ADAPTER_INFO *info = NULL, *pos;
    DWORD size = 0;

    GetAdaptersInfo(info, &size);

    info = (IP_ADAPTER_INFO *)malloc(size);

    GetAdaptersInfo(info, &size);

    for (pos=info; pos!=NULL; pos=pos->Next) {
        printf("\n%s\n\t", pos->Description);
        printf("%2.2x", pos->Address[0]);
        for (int i=1; i<pos->AddressLength; i++)
            printf(":%2.2x", pos->Address[i]);
    }

    free(info);
    return 0;
}

, пожалуйста, простите древний C код ...

6
ответ дан 13 December 2019 в 19:27
поделиться

Если в версии Debug установлен флажок «Incremental» (инкрементная связь), то, вероятно, это является причиной отклонения.

-121--2843419-

Если установлены автоматические сборки, убедитесь, что уведомления об ошибках являются как можно более очевидными и раздражающими. Настенные доски или звуковые уведомления в общих областях разработки являются хорошим началом. Затем убедитесь, что одна сборка нарушена, убедитесь, что никто не проверяет код, пока преступник не исправит проблему.

Конечно, это уловит его только тогда, когда его код нарушит построение, но давление со стороны окружающих, чтобы он постоянно был в центре внимания для этого будет стимулом для большинства. В случае, если это не поможет, выполните следующие действия, доступные через отдел кадров. Вы с ним уже поговорили, уже дали письменное уведомление - узнайте, что такое следующие шаги. Разработчик, который идет своим путем, является либо дальновидным, либо не командным игроком - и я никогда лично не имел удовольствия работать с дальновидным в этом отношении.

-121--1543001-

GetAdapterAddresses IPHelper ()
http://msdn.microsoft.com/en-us/library/aa365915%28VS.85%29.aspx
Я успешно использую WinCE для получения операционного статуса, должен работать и с MAC-адресом.

0
ответ дан 13 December 2019 в 19:27
поделиться

Нет такой вещи, как «MAC-адрес», если компьютер имеет> 1 NIC. Вы можете запросить эту информацию с помощью WMI, http://techsupt.winbatch.com/ts/t000001002f19.html для получения более подробной информации

5
ответ дан 13 December 2019 в 19:27
поделиться
Другие вопросы по тегам:

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