我正在寻找一种方法来准确确定接口是否是 Windows 中 PC 上的物理 802.3 以太网端口。
使用 ipconfig /all 我可以列出所有接口,当我在我的电脑上执行此操作时,可以在此处列出几个条目,包括 VPN、蓝牙、Wifi 和物理以太网接口。
我正在寻找类似“isPhysical(interface)”的东西。(有多个物理网口没问题,我只想知道是不是物理网口)。
更新:
杰伊和克里斯谢谢!
(评论空间不够,我就在这里发)
我目前正在考虑使用 WMI Win32_NetworkAdapter。但是,它显示了 AdapterType="Ethernet 802.3" 的 4 个接口。
我的电脑上只有 1 个物理端口,其他端口的名称为“虚拟机网络服务驱动程序”。(我认为这些是我的公司出于某些邪恶的原因安装的)
我在界面中找到了我需要的属性,但是在winXP下没有!!!
PhysicalAdapter 数据类型:布尔型 访问类型:只读
指示适配器是物理适配器还是逻辑适配器。如果为 True,则适配器是物理的。Windows Server 2003、Windows XP、Windows 2000 和 Windows NT 4.0:此属性不可用。
除了对名称中的“虚拟”一词进行文本过滤之外,有什么方法可以确定它是否是物理端口?
更新 12/08
看起来虚拟接口是在安装 VM 时添加的。
以下是有关虚拟适配器的一些详细信息:http: //blogs.msdn.com/virtual_pc_guy/archive/2005/04/01/404816.aspx
发现如果用户没有管理员权限,WMI 界面不会返回所需数据的问题。所以,现在看看 GetAdapterInfo 方法。但是,它似乎在实际适配器的描述中添加了“虚拟机服务驱动程序”,使得“虚拟”文本检查无效。
GetAdapterInfo 返回的结构:
http://msdn.microsoft.com/en-us/library/aa366062(VS.85).aspx