C# 如何确定网络接口是否连接到Internet(即计算机处于联机状态)
我需要一种以编程方式确定internet可用性的方法。 现在我用Ping来不断的Ping一些互联网站点 但Windows 7似乎以其他方式决定了互联网的可用性。 如果计算机联机,则系统托盘中的网络接口图标上有接地图标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
问题是:是否有任何标准的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个周期,我将重新启动网络接口。