检测以太网电缆是否插入

本文关键字:是否 插入 以太网 检测 | 更新日期: 2023-09-27 18:15:22

我试图检测以太网电缆何时插入或拔出,但我有一些问题,我不知道我是否做得很好。

我使用NetworkChange.NetworkAddressChanged检测网络何时发生变化

,然后NetworkInterface.GetAllNetworkInterfaces(),检查以太网连接是否可用,.OperationalStatus属性

但是当我在所有网络接口中搜索以太网连接时,它返回给我我正在寻找的东西,但它总是返回给我蓝牙连接

代码如下:

public Form1()
{
    InitializeComponent();
    NetworkChange.NetworkAddressChanged += new NetworkAddressChangedEventHandler(AddressChangedCallback);
    Console.ReadLine();
}
static void AddressChangedCallback(object sender, EventArgs e)
{
    NetworkInterface[] adapters = NetworkInterface.GetAllNetworkInterfaces();
    foreach (NetworkInterface myInterface in adapters)
    {
        //if (n.Description.ToLower().Contains("ethernet")){
        //if (n.NetworkInterfaceType.ToString().ToLower().Contains("ethernet")){
        IPInterfaceProperties properties = n.GetIPProperties();
        if (myInterface.NetworkInterfaceType == NetworkInterfaceType.Ethernet)
        {
            Console.WriteLine(myInterface.Description + " ........... :  " + myInterface.OperationalStatus);
            Console.WriteLine("NetworkInterfaceType : " + myInterface.NetworkInterfaceType);
        }
    }
}

开始时,我试图检查连接的名称,并查看是否包含"以太网"字,但它出现(如果我没有错)有时连接名称不包含"以太网"。



你有什么建议可以让你一直保持良好的网络连接(没有蓝牙)吗?
我的方法错了吗?


我正在Surface Pro 3上测试…但也许我有蓝牙问题,因为它?尽管如此,我需要它甚至在这样的设备上工作

检测以太网电缆是否插入

这可以通过检查其运行状态来完成:

foreach (System.Net.NetworkInformation.NetworkInterface net in System.Net.NetworkInformation.NetworkInterface.GetAllNetworkInterfaces())
{
     if (net.OperationalStatus == 
        System.Net.NetworkInformation.OperationalStatus.Up)
           Console.WriteLine("N/w connected");
     else
           Console.WriteLine("N/w not connected");
}

这个链接展示了如何在Powershell中做到这一点,但其中一个案例使用的是WMI。

http://www.powershellmagazine.com/2013/04/04/pstip-detecting-wi-fi-adapters/

这个链接显示了一个有趣的属性,有时会有帮助:

https://msdn.microsoft.com/en-us/library/aa394217 (v = vs.85) . aspx

GatewayCostMetric

数据类型:uint16 array

访问类型:Read-only Array

中要使用的整数成本度量值(范围从1到9999)计算最快、最可靠或资源消耗最少的路线。这个论证与DefaultIPGateway财产。