Программно определить, является ли сетевая карта встроенной или дискретной в Windows

0

Я знаю, что я могу использовать GetAdaptersAddresses для получения информации о сетевых интерфейсах на машине. Кроме того, я хотел бы определить, какой из этих интерфейсов относится к сетевым картам, встроенным в системную плату. Требование аналогично рассмотренному здесь: qaru.site/questions/253993/.... Принятый ответ - проверить, является ли карта устройством PCI. Я не думаю, что это сработает, потому что я считаю, что интегрированные карты сообщаются как устройства PCI (я не могу проверить это прямо сейчас, так как сейчас у меня нет доступа к машине Windows... по крайней мере, они появляются в выход lspci в Linux).

Вариант использования для этого аналогичен тому, который упоминается в сообщении SO, связанном выше: для создания уникального идентификатора системы на основе MAC-адреса. Я хотел бы использовать MAC-адрес интегрированной карты, поскольку он подключен к материнской плате, и для моей проблемы я хотел бы, чтобы системный идентификатор соответствовал материнской плате.

  • 1
    Я был бы удивлен, если бы существовал общий и надежный метод для разграничения между интегрированным и дискретным.
  • 0
    Ну, это не обязательно должно быть надежным, поскольку использование MAC-адресов вообще подвержено ошибкам. Что-то вроде 90%, вероятно, достаточно хорошо. Общность является требованием, хотя. Это для некритической функции, поэтому я не хочу писать сотни строк для особых случаев, зависящих от поставщика.
Показать ещё 1 комментарий
Теги:
networking
uniqueidentifier
mac-address

1 ответ

1

проверить класс Win32_OnBoardDevice
в powershell вы можете сделать:

PS C:\temp> gwmi Win32_OnBoardDevice|?{$_.devicetype -eq 5} |select -expand description
Broadcom 5754 NetXtreme Gigabit Controller
  • 0
    Это выглядит многообещающе. Знаете ли вы, можно ли сопоставить какие-либо поля Win32_OnBoardDevice с полями в IP_ADAPTER_ADDRESSES ? Похоже, что Name и AdapterName могут быть единственной возможностью.
  • 0
    хм ... не легко, я думал, что описание будет соответствовать Win32_NetworkAdapterConfiguration, но это не так ...

Ещё вопросы

Сообщество Overcoder
Наверх
Меню