当前位置:  开发笔记 > 开发工具 > 正文

如何确定接口是否是Windows PC上的物理LAN端口?

如何解决《如何确定接口是否是WindowsPC上的物理LAN端口?》经验,为你挑选了1个好方法。

我正在寻找一种方法来确定接口是否是Windows中PC上的物理802.3以太网端口.

使用ipconfig/all我可以列出所有接口,当我在我的电脑上执行此操作时,可以在此列出几个条目,包括VPN,蓝牙,Wifi和物理以太网接口.

我正在寻找像"isPhysical(interface)"这样的东西.(可以有多个物理局域网端口,我只是想知道它是否是物理端口).

更新:

杰伊和克里斯谢谢!

(评论中没有足够的空间,所以我会在这里发布)

我目前正在寻找使用WMI Win32_NetworkAdapter.但是,它显示4个接口,AdapterType ="Ethernet 802.3".

我的电脑上只有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



1> Jay Hofacker..:

调用GetIfEntry并在返回的MIB_IFROW结构中查找IF_TYPE_ETHERNET_CSMACD的dwType 。

或在.NET中,查找带有NetworkNetworkType以太网的System.Net.NetworkInformation.NetworkInterface 。

推荐阅读
殉情放开那只小兔子
这个屌丝很懒,什么也没留下!
DevBox开发工具箱 | 专业的在线开发工具网站    京公网安备 11010802040832号  |  京ICP备19059560号-6
Copyright © 1998 - 2020 DevBox.CN. All Rights Reserved devBox.cn 开发工具箱 版权所有