如何判断网卡是有线网卡还是无线网卡

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了如何判断网卡是有线网卡还是无线网卡相关的知识,希望对你有一定的参考价值。

使用操作系统自带的管理工具,就可查看本机网卡类型,方法简介如下:

1、直接观察系统托盘网络图标样式,分辨网卡类型。如下图中的有线网卡图标和无线网卡图标的区别;

2、利用系统的“设备管理器”窗口,如下。点开“网络适配器”项,红框内的realtek PCIE GBE Family Controller,即为有线网卡的设备名称,下面的Wireless 150M Adapter,为无线网卡设备名称;

3、直接打开系统控制面板中的 “网络连接” 窗口如下图示,可直观看到网卡的配置现状。图中无线网卡会有文字标明,以区别有线网卡的“本地连接”;

4、如果电脑中只有一种网卡设备,则上面两个窗口中也只有对应的一个网卡的图标显示,如第1条的单卡信息。

参考技术A

    在设备管理器里看,要是带有WLAN字样的是无线,LAN的是一般都是有线。

    在网络里看,win10系统里显示是WLAN是无线,以太网是有线。在win7标有无线连接的是无线,本地连接是有线

    用软件查看,比如鲁大师、驱动精灵之类的

参考技术B

    右键单击“我的电脑/计算机”选择管理-计算机管理- 设备管理器-展开网络适配器;

    如果有显示Wifi Adapter 或者Wireless Adapter字样就是无线网卡的型号标示;

    有线网卡的型号为 Ethernet 字样

参考技术C 你可以打开设备管理器。我的电脑,右键属性,设备管理器,网络适配器,PCIe的那个是有线网卡 参考技术D 无线网卡 就是通过无线网卡和无线接收发送器来连接(比如无线路由)

有线网卡 必须通过数据线来传播

所以判断是否核心标准就是,是否需要媒介进行传播。

关闭Windows 系统当前连接的Wifi以及判断物理虚拟网卡,有线无线网卡

1.关闭wifi ,调用Api

 [DllImport("Wlanapi.dll", SetLastError = true)]
 public static extern uint WlanDisconnect(IntPtr hClientHandle, ref Guid pInterfaceGuid, IntPtr pReserved);

2.获取当前连接wifi 网卡句柄

The WlanOpenHandle function opens a connection to the server.

就是为了返回 ClientHandle ,传入WlanDisconnect(...) 中的hClientHandle 的参数。

官方解释【A handle for the client to use in this session. This handle is used by other functions throughout the session.】

 [DllImport("Wlanapi.dll")]
 private static extern int WlanOpenHandle(uint dwClientVersion, IntPtr pReserved,  [Out]out uint pdwNegotiatedVersion, out IntPtr ClientHandle);

3.WlanDisconnect(...)中还有一个参数pInterfaceGuid要获取,就是真实网卡(安装了虚拟机要虚拟网卡)的唯一标识符,无线和有线还不一样。

3.1 真实网卡可以通过Win32_NetworkAdapter(可以查询此类的属性,其中有【GUID】) 获取,因为真实网卡的 PNPDeviceID  都是【PCI】开头

SELECT * FROM Win32_NetworkAdapter WHERE NetConnectionStatus=2  AND PNPDeviceID LIKE PCI%‘");

以上 获取了已连接的真实网卡,笔记本一般有无线和有线网卡,如果无线和有线都连接,获取了两条记录,NetConnectionStatus 条件是连接状态 【2】:已连接,【7】:未连接。

3.2通过Win32_NetworkAdapter我们可以获取 真实网卡的唯一标识符 GUID. 区别有线还是无线,我们可以通过注册表判断注册表路径:HKLM\SYSTEM\CurrentControlSet\Control\Network\{4D36E972-E325-11CE-BFC1-08002BE10318}\【GUID】\Connection

路径下的键值 MediaSubType,如果Value=2,表示无线网卡。

 4. 最终形成

技术分享图片
 public static bool Disconnect()
        {
            IntPtr _clientHandle = IntPtr.Zero;
            uint negotiatedVersion;
            int code = WlanOpenHandle(1, IntPtr.Zero, out negotiatedVersion, out _clientHandle);
            NetworkInterface[] _interface = NetworkInterface.GetAllNetworkInterfaces();
            ManagementObjectSearcher searcher = new ManagementObjectSearcher(
            @"SELECT * FROM Win32_NetworkAdapter WHERE NetConnectionStatus=2  AND PNPDeviceID LIKE ‘PCI%‘");
            string GUID = "";
            foreach (ManagementObject mo in searcher.Get())
            {
                GUID = mo["GUID"].ToString().Trim();
                Console.WriteLine(GUID);
                var registryKey = Registry.LocalMachine.OpenSubKey(@"SYSTEM\CurrentControlSet\Control\Network\{4D36E972-E325-11CE-BFC1-08002BE10318}\" + GUID + "\\Connection", false);
                if (registryKey != null)
                {
                    var mediaSubTypevalue = registryKey.GetValue("MediaSubType");
                    if (mediaSubTypevalue != null)
                    {
                        int num;
                        int.TryParse(mediaSubTypevalue.ToString(), out num);
                        if (num == 2)
                        {
                            Guid netIfaceGuid = new Guid(GUID);
                            var ERROR_SUCCESS = WlanDisconnect(_clientHandle, ref netIfaceGuid, IntPtr.Zero);
                            if (ERROR_SUCCESS == 0)
                            {
                                return true;
                            }
                            WlanCloseHandle(_clientHandle, IntPtr.Zero);//不确定
                        }
                    }
                }
            }
            return false;
        }
View Code

5.后记

我用的是NativeWifi 类库,进行打开wifi的,NativeWifi 也是封装了windows 的Wlanapi.dll 的方法。但是没有关闭连接wifi方法,所以只能自己写。

 

 文章参考:

有线网卡与无线网卡、物理网卡与虚拟网卡的区分

 

以上是关于如何判断网卡是有线网卡还是无线网卡的主要内容,如果未能解决你的问题,请参考以下文章

笔记本上那个是无线网卡,那个是有线网卡 如何识别

关闭Windows 系统当前连接的Wifi以及判断物理虚拟网卡,有线无线网卡

win7企业版(虚拟机) 有线和无线同时连接使用

VC 电脑的有线网卡与无线网卡的IP区别

有线网卡和无线网卡分别指的是啥

windows server 2003用啥无线网卡驱动?还是只能用有线的网卡驱动吗