我现在有这样一个需求,一台笔记本存在两块网卡,无线网卡(上外网),有线网卡(内部局域网)
一般情况下用来上外网,一旦插上网线(内网)无线网卡自动断开或禁用.
这里的主要问题是怎样判断有线网卡是否已连接,不想用ping命令,因为内部局域网的IP有太多不确定因素.
在百度找了半天,只有一个关于判断是否是物理网卡,
 ManagementObjectSearcher s = new ManagementObjectSearcher(
     @"SELECT NetConnectionStatus FROM Win32_NetworkAdapter WHERE NetConnectionStatus=2 AND PNPDeviceID LIKE 'PCI%'");这里的NetConnectionStatus 是判断网卡是否连接,PNPDeviceID 是网卡的DeviceID 
这里的问题是,我怎样才可以获取 网卡的PNPDeviceID 呢..网卡的禁用启用难度并不大,自己就可以解决,主要是网卡是否连接,比较头疼................

解决方案 »

  1.   

    System.Net.NetworkInformation.NetworkInterface.Id
      

  2.   

    我的电脑里有两个虚拟机适配器还有个本地连接,后面的对应值。
    我用自己无聊时做的WMI扫描器,获取得到的。
      

  3.   

     [DllImport("wininet.dll")]
         private extern static bool InternetGetConnectedState(out int  connectionDescription, int reservedValue);
    ping
    System.Net.NetworkInformation.Ping ping = new System.Net.NetworkInformation.Ping(); 
    System.Net.NetworkInformation.PingReply res = ping.Send(""); 
    if (res.Status != System.Net.NetworkInformation.IPStatus.Success)