首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何判断网线是否已拔出?

如何判断网线是否已拔出?
EN

Stack Overflow用户
提问于 2009-05-20 07:55:48
回答 9查看 7.4K关注 0票数 6

我有一个C#应用程序,它应该只在网络中断时使用,但担心用户为了使用它而拔掉网线。

有没有办法检测网线是否已拔出?

谢谢

EN

回答 9

Stack Overflow用户

回答已采纳

发布于 2009-05-20 13:00:48

您可以使用IsNetworkAlive()。虽然从技术上讲,它不会检查链路状态,但它可能更好,因为它还可以检测无线和拨号连接。下面是一个例子:

代码语言:javascript
复制
using System.Runtime.InteropServices;
class Program
{
    [DllImport("sensapi.dll")]
    static extern bool IsNetworkAlive(out int flags);

    static void Main(string[] args)
    {
        int flags;
        bool connected = IsNetworkAlive(out flags);

    }
}

标志param返回是连接到internet还是只连接到LAN。我不是百分之百确定它是怎么知道的,但我敢打赌,它只是看看是否有默认网关设置。

票数 6
EN

Stack Overflow用户

发布于 2009-05-20 12:37:06

在我的愚见中,没有确定的方法来区分网络故障和未插入的电缆。即使有办法,也有办法绕过它。

让我们假设你有一个解决方案,让我们看看一些情况:

  • 没有网络流量,没有从计算机拔出电缆:可能是从另一端拔下的。
  • 没有网络流量,电缆是拔出的:但笔记本电脑一直都是通过Wi-Fi连接的,而Wi-Fi目前处于关闭状态。
  • 有几个网络接口,只有连接到广域网的一个网络接口关闭了:您的应用程序应该正常工作吗?
  • 网络实际上关闭了,从您的意思来看:有人为了使用您的应用程序,成功地连续重新启动了路由器。
票数 4
EN

Stack Overflow用户

发布于 2012-09-04 18:39:56

你可以使用这个

代码语言:javascript
复制
System.Net.NetworkInformation.NetworkInterface.GetIsNetworkAvailable()
票数 3
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/886680

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档