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