Я знаю, что я могу использовать GetAdaptersAddresses
для получения информации о сетевых интерфейсах на машине. Кроме того, я хотел бы определить, какой из этих интерфейсов относится к сетевым картам, встроенным в системную плату. Требование аналогично рассмотренному здесь: qaru.site/questions/253993/.... Принятый ответ - проверить, является ли карта устройством PCI. Я не думаю, что это сработает, потому что я считаю, что интегрированные карты сообщаются как устройства PCI (я не могу проверить это прямо сейчас, так как сейчас у меня нет доступа к машине Windows... по крайней мере, они появляются в выход lspci
в Linux).
Вариант использования для этого аналогичен тому, который упоминается в сообщении SO, связанном выше: для создания уникального идентификатора системы на основе MAC-адреса. Я хотел бы использовать MAC-адрес интегрированной карты, поскольку он подключен к материнской плате, и для моей проблемы я хотел бы, чтобы системный идентификатор соответствовал материнской плате.
проверить класс Win32_OnBoardDevice
в powershell вы можете сделать:
PS C:\temp> gwmi Win32_OnBoardDevice|?{$_.devicetype -eq 5} |select -expand description
Broadcom 5754 NetXtreme Gigabit Controller
Name
и AdapterName
могут быть единственной возможностью.