如何确定网络接口是否连接到Internet(即计算机是否在线)

时间:2010-10-13 09:45:17

标签: c# networking windows-7 windows-services

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

但似乎Windows 7虽然以其他方式确定了互联网可用性。 如果计算机处于联机状态,则系统托盘中的网络接口图标上会显示地球图标。

问题是:是否有任何标准的Win32方式来检查在线状态,赢取事件或其他什么,如果有,如何在C#中使用它?

2 个答案:

答案 0 :(得分:4)

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

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:

check whether Internet connection is available with C#

答案 1 :(得分:2)

除了调制解调器之外,

'连接到互联网'没有任何实际意义。测试任何资源是否可用的节拍方法是使用它。无论如何,你必须应对失败,不需要两次编码。