Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/339.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# 如何确定网络接口是否连接到Internet(即计算机处于联机状态)_C#_Networking_Windows 7_Windows Services - Fatal编程技术网

C# 如何确定网络接口是否连接到Internet(即计算机处于联机状态)

C# 如何确定网络接口是否连接到Internet(即计算机处于联机状态),c#,networking,windows-7,windows-services,C#,Networking,Windows 7,Windows Services,我需要一种以编程方式确定internet可用性的方法。 现在我用Ping来不断的Ping一些互联网站点 但Windows 7似乎以其他方式决定了互联网的可用性。 如果计算机联机,则系统托盘中的网络接口图标上有接地图标 问题是:是否有任何标准的Win32方法来检查在线状态、赢取活动或其他东西,如果是,如何从C#使用它?我相信这样的方法会起作用,尽管您的问题似乎是重复的: using System; using System.Runtime; using System.Runtime.Interop

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

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


问题是:是否有任何标准的Win32方法来检查在线状态、赢取活动或其他东西,如果是,如何从C#使用它?

我相信这样的方法会起作用,尽管您的问题似乎是重复的:

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 ) ;
    }
}
福兰德:


除了调制解调器的情况外,“连接到互联网”没有任何实际意义。测试资源是否可用的最佳方法是使用它。不管怎样,您必须在这一点上应对失败,无需对所有内容进行两次编码。

您将如何处理这些信息?由于internet连接随时可能中断,因此您必须对其进行防御编程。Whell,我有一个代码可重新启用LAN接口。它通过WMI禁用LAN接口,然后再次启用—当提供商端出现问题时,它会提供帮助。我还计划设置WiMax或GSM调制解调器,因为这对我的应用程序的连接非常关键:)好吧,已经这样做了。每3秒钟,我向一个已知的公共主机发送ping,如果我失败至少10个周期,我将重新启动网络接口。