方法一:
How to check if your computer is connected to the internet with C#. It's much more easier that other tutorials I've seen in other sites. In deed, we're going to use a simple API function InternetGetConnectedState, to return a boolean variable.
This function takes two arguments :
The first one is an integer used with out keyword, that means that after calling the function, the variable will contain an interger that describes the connection state ( use of a modem, use of a proxy, offline mode...). Note that you must refer to www.msdn.com for more information about that.
The second one is a reserved variable that must be set to 0.
In this tutorial, we'll create a class with a static function that returns true if connected and false if not, using our API function in private state.
Check this out :
using System ; using System.Runtime ; using System.Runtime.InteropServices ; public class InternetCS {
//Creating the extern function... [DllImport("wininet.dll")] private extern static bool InternetGetConnectedState( int out Description, int ReservedValue ) ;
//Creating a function that uses the API function... public static bool IsConnectedToInternet( ) {
int Desc ; return InternetGetConnectedState( out Desc, 0 ) ;
}
} |
方法二:Net2.0新增類庫(System.Net.NetworkInformation)
#region 方法二
/// <summary>
/// 用於檢查IP地址或網域名稱是否可以使用TCP/IP協議訪問(使用Ping命令),true表示Ping成功,false表示Ping失敗
/// </summary>
/// <param name="strIpOrDName">輸入參數,表示IP地址或網域名稱</param>
/// <returns></returns>
public static bool PingIpOrDomainName(string strIpOrDName)
{
try
{
Ping objPingSender = new Ping();
PingOptions objPinOptions = new PingOptions();
objPinOptions.DontFragment = true;
string data = "";
byte[] buffer = Encoding.UTF8.GetBytes(data);
int intTimeout = 120;
PingReply objPinReply = objPingSender.Send(strIpOrDName, intTimeout, buffer, objPinOptions);
string strInfo = objPinReply.Status.ToString();
if (strInfo == "Success")
{
return true;
}
else
{
return false;
}
}
catch (Exception)
{
return false;
}
}
#endregion