Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/ssis/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
使用网络信息的C#中网络电缆的状态_C#_Ethernet - Fatal编程技术网

使用网络信息的C#中网络电缆的状态

使用网络信息的C#中网络电缆的状态,c#,ethernet,C#,Ethernet,我尝试使用以下代码检测以太网电缆断开/连接状态。我没有得到要求的结果,因为它会返回Wi-fi网络和以太网的状态。如何单独获取以太网端口的状态 using System.Net.NetworkInformation; bool isNetworkCableConnected = NetworkInterface.GetIsNetworkAvailable(); 请分享您的建议。要获得纯以太网连接,您首先必须筛选以太网接口: NetworkInterface[] adapters =

我尝试使用以下代码检测以太网电缆断开/连接状态。我没有得到要求的结果,因为它会返回Wi-fi网络和以太网的状态。如何单独获取以太网端口的状态

using System.Net.NetworkInformation;

     
bool isNetworkCableConnected = NetworkInterface.GetIsNetworkAvailable();

请分享您的建议。

要获得纯以太网连接,您首先必须筛选以太网接口:

NetworkInterface[] adapters = NetworkInterface.GetAllNetworkInterfaces();
var ethOnly = adapters.Where( x => x.NetworkInterfaceType = NetworkInterfaceType.Ethernet );
可能还包括
Ethernet3Megabit
GigabitEthernet

然后,您可以检查生成的适配器的连接:

// check first adapter for connectivity
bool upAndRunning = ethOnly[0]?.OperationalStatus == OperationalStatus.Up ?? false;
请注意,操作状态取决于更多的东西,而不仅仅是一根插入或拔出的电缆。如果它是向上的,你可以非常有信心,电缆是存在和完整的。然而,如果它不起作用,你就无法知道丢失的电缆是否是罪魁祸首


tl/dr:我认为最接近的方法是监控运行状态,但不是具体的电缆(=第0层)状态。

一个好的起点可能是
网络接口
具有属性和功能。前者让您过滤以太网,后者让您了解操作状态。^^。。。意思是:如果它是向上的,你可以确保电缆是插好的。你无法知道的是,它没有打开的原因是否是未拔出的电缆。