我如何以编程方式确定网络适配器是否在Windows上是虚拟的?

时间:2018-01-21 13:58:00

标签: c++ powershell winapi networking wmi

使用Win32 / IP帮助程序功能,如何以编程方式确定网络适配器是否在Windows上是虚拟的?

我们目前使用GetAdaptersAddresses检索与本地计算机上的适配器关联的地址。我想避免与虚拟适配器关联的地址。

在PowerShell中,我们有以下查询,可以过滤虚拟适配器:

Get-NetAdapter | Where {$_.Virtual –eq $False}

以上如何运作?如果我们能得到一些提示?然后我们也可以在C ++代码中实现相同的逻辑。

1 个答案:

答案 0 :(得分:0)

不幸的是,我不知道识别虚拟网络适配器的可靠方法。

至少你可以像对PS那样做,并过滤包含' Virtual'在描述中: 调用GetAdaptersInfohttps://msdn.microsoft.com/en-us/library/windows/desktop/aa365917(v=vs.85).aspx)会得到一组PIP_ADAPTER_INFO个结构。 他们的Description字段包含您要检查的说明。