【发布时间】:2015-12-29 07:38:00
【问题描述】:
我正在尝试检测以太网电缆何时插入或拔出,但我遇到了一些问题,我不知道我这样做是否好。
我正在使用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 上对其进行测试...但也许我因此遇到了蓝牙问题? 尽管如此,即使在这样的设备上,我也需要它。
【问题讨论】:
-
蓝牙设备可以提供很多服务,其中之一是网络连接。如果驱动程序将网络接口呈现为以太网卡,那么对于操作系统来说,它就是以太网卡。
-
你为什么特别想知道是否有拔掉的电缆?您打算如何处理这些信息?
-
@Tragedian 必须在拔下电缆时打开 wifi 并在连接电缆时将其关闭
-
@PanagiotisKanavos 好的,谢谢,我想过,但如果这是真的,我认为这不是检查电缆是否插入的好方法
-
如果你的蓝牙连接永远不会改变,你可以硬编码一个过滤器,并检测是否有其他连接。
标签: c# .net network-programming ethernet