Я пытаюсь (более или менее) однозначно идентифицировать систему для целей лицензирования.Для этой задачи я выбрал MAC-адрес встроенного сетевого адаптера компьютера, так как я могу быть уверен, что на каждом компьютере, на котором работает это программное обеспечение, он есть, и это позволяет избежать повторной активации при смене, например, жесткого диска.
IУ меня проблемы с надежной идентификацией встроенного сетевого адаптера.
Используя класс управления «Win32_NetworkAdapterConfiguration», я могу получить много MAC-адресов, включая адрес, который мне нравится, но я не нашел способа отличить встроенный адаптер от виртуальных адаптеров, установленных Windows или вирусными сканерами,Этот список, кажется, упорядочен, хотя.Интересующий меня MAC-адрес (на моей машине) указан перед другими (реальными) сетевыми адаптерами.(Список упорядочен по индексу интерфейса.)
Используя NetworkInterface.GetAllNetworkInterfaces()
, я думаю, что я могу определить реальные сетевые адаптеры, отфильтровав по .NetworkInterfaceType == NetworkInterfaceType.Ethernet
, но этот список кажется неупорядоченным (появляется добавленная сетевая картадо встроенного).
Сначала используется второй метод для получения списка реальных сетевых карт, а затем сортировка их по порядку появления в первом списке, надежный способ определения MAC-адреса, который я ищуза?Может ли индекс интерфейса в первом списке измениться?Я был бы рад услышать ваши мысли!
Спасибо!
PS: я знаю, что MAC-адрес может быть довольно легко изменен, но я могу с этим смириться.Я не могу жить с клиентом, который не может использовать программное обеспечение после простой установки карты WLAN =)