如何判断网络接口是否连接到互联网(即电脑是否在线)

发布于 2024-09-27 09:56:13 字数 186 浏览 1 评论 0原文

我需要一种以编程方式确定互联网可用性的方法。 现在我使用 Ping 不断 ping 一些网站。

但 Windows 7 似乎以其他方式决定了互联网的可用性。 如果计算机在线,系统托盘中的网络接口图标上会出现地球图标。

问题是:是否有任何标准的 Win32 方法来检查在线状态、获胜事件或其他内容,如果有,如何从 C# 使用它?

I need a way to determine internet availability programmatically.
At now i use Ping to constantly ping some internet site.

But it seems Windows 7 though determines internet availability in some other way.
If computer is online there is earth icon on the network interface icon in the System Tray.

The question is: is there any standard Win32 way to check online status, win event or something, and if so, how to use it from C#?

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(2

围归者 2024-10-04 09:56:13

我相信这样的事情会起作用,尽管你的问题似乎是重复的:

using System;
using System.Runtime;
using System.Runtime.InteropServices;

public class InternetCS
{
    //Creating the extern function...
    [DllImport("wininet.dll")]
    private extern static bool InternetGetConnectedState( out int Description, int ReservedValue );

    //Creating a function that uses the API function...
    public static bool IsConnectedToInternet( )
    {
        int Desc ;
        return InternetGetConnectedState( out Desc, 0 ) ;
    }
}

在这里:

使用C#检查互联网连接是否可用

I believe something like this would work although your question appears to be a duplicate:

using System;
using System.Runtime;
using System.Runtime.InteropServices;

public class InternetCS
{
    //Creating the extern function...
    [DllImport("wininet.dll")]
    private extern static bool InternetGetConnectedState( out int Description, int ReservedValue );

    //Creating a function that uses the API function...
    public static bool IsConnectedToInternet( )
    {
        int Desc ;
        return InternetGetConnectedState( out Desc, 0 ) ;
    }
}

forund here:

check whether Internet connection is available with C#

半边脸i 2024-10-04 09:56:13

除了调制解调器之外,“连接到互联网”没有任何实际含义。测试任何资源是否可用的最佳方法是使用它。无论如何,你必须应对此时的失败,不需要将所有内容都编码两次。

'Connected to the Internet' doesn't have any actual meaning except in the case of a modem. The beat way to test whether any resource is available is to use it. You have to cope with failures at that point anyway, no need to code everything twice.

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文