C#

Как сделать проверку подключен ли интернет?

Using (WebClient client = new WebClient())
{
string htmlCode = client.DownloadString("сайт");
}

всё работает, но если интернет офф, то он выдаёт ошибку.
как сделать проверку?
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;

namespace ConsoleApplication1
{
class Program
{
static void Main(string[] args)
{
if(Internet.CheckConnection())
Console.WriteLine("Соединение с интернетом найдено");
else
Console.WriteLine("Соединение с интернетом не найдено");
Console.ReadKey();
}
}
}

/////////////////////////////

using System;
using System.IO;
using System.Net;
using System.Net.NetworkInformation;
using System.Runtime.InteropServices;

namespace ConsoleApplication1
{
public static class Internet
{
[DllImport("wininet.dll")]
static extern bool InternetGetConnectedState(ref InternetConnectionState lpdwFlags, int dwReserved);

[Flags]
enum InternetConnectionState : int
{
INTERNET_CONNECTION_MODEM = 0x1,
INTERNET_CONNECTION_LAN = 0x2,
INTERNET_CONNECTION_PROXY = 0x4,
INTERNET_RAS_INSTALLED = 0x10,
INTERNET_CONNECTION_OFFLINE = 0x20,
INTERNET_CONNECTION_CONFIGURED = 0x40
}

static object _syncObj = new object();

///
/// Проверить, есть ли соединение с интернетом
///
///
public static Boolean CheckConnection()
{
lock (_syncObj)
{
try
{
InternetConnectionState flags = InternetConnectionState.INTERNET_CONNECTION_CONFIGURED | 0;
bool checkStatus = InternetGetConnectedState(ref flags, 0);

if (checkStatus)
return PingServer(new string[]
{
@"google.com",
@"microsoft.com",
@"ibm.com"
});

return checkStatus;
}
catch
{
return false;
}
}
}

///
/// Пингует сервера, при первом получении ответа от любого сервера возвращает true
///
/// Список серверов
///
public static bool PingServer(string[] serverList)
{
bool haveAnInternetConnection = false;
Ping ping = new Ping();
for (int i = 0; i < serverList.Length; i++)
{
PingReply pingReply = ping.Send(serverList[i]);
haveAnInternetConnection = (pingReply.Status == IPStatus.Success);
if (haveAnInternetConnection)
break;
}

return haveAnInternetConnection;
}
}
}
Рудольф Марков
Рудольф Марков
22 008
Лучший ответ
Андрей Титов мне не совсем для этого.
мне нужны html код страницы получить, я получил, но когда инет офф, то он не может получить.
мне надо какую проверку чтобы он не показывал ошибку.
как можно это уложить в маленький код?
пинг на гугл сервер восновном делают епать тема можешь и на свой
Бекзодбек Салиев не код гомвно не пойдет
Бекзодбек Салиев пингуй просто и все или яшу или гугл