使用Win32 / IP帮助程序功能,如何以编程方式确定网络适配器是否在Windows上是虚拟的?
我们目前使用GetAdaptersAddresses
检索与本地计算机上的适配器关联的地址。我想避免与虚拟适配器关联的地址。
在PowerShell中,我们有以下查询,它可以过滤虚拟适配器:
Get-NetAdapter | Where {$_.Virtual –eq $False}
以上是如何工作的?如果我们能得到一些提示?然后我们也可以在C ++代码中实现相同的逻辑。
不幸的是,我不知道识别虚拟网络适配器的可靠方法。
至少你可以像使用PS那样做,并过滤描述中包含'Virtual'的适配器:调用GetAdaptersInfo
(https://msdn.microsoft.com/en-us/library/windows/desktop/aa365917(v=vs.85).aspx)你得到一个PIP_ADAPTER_INFO
结构数组。他们的Description
字段包含您想要检查的描述。