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

Проверка наличия интернет-соединения — задача, с которой сталкиваются многие разработчики. Хотя кажется, что всё просто, на практике есть нюансы: фаерволы, DNS, доступность серверов. Мы рассмотрим простой и надежный способ — отправку HTTP-запроса к сайту Google.

Если сервер отвечает с кодом 200 (OK) — значит, интернет есть. В противном случае — нет.

using System;
using System.Collections.Generic;
using System.Linq;
using System.Net;

namespace Work
{
    class Program
    {
        static void Main(string[] args)
        {
           ConnectionAvailable("http://www.google.com").ToString();
           Console.ReadKey();
        }


        public static bool ConnectionAvailable(string strServer)
        {
            try
            {
                HttpWebRequest httpReq = (HttpWebRequest)HttpWebRequest.Create(strServer);
                HttpWebResponse httpWeb = (HttpWebResponse)httpReq.GetResponse();

                if (HttpStatusCode.OK == httpWeb.StatusCode)
                {
                    // HTTP = 200 - Интернет безусловно есть!
                    httpWeb.Close();
                    Console.WriteLine("Соединения с интернетом присутствует");
                    return true;
                }
                else
                {
                    // сервер вернул отрицательный ответ, возможно что инета нет
                    httpWeb.Close();
                    Console.WriteLine("Соединения с интернетом отсутствует, либо трафик сети перегружен");
                    return false;
                }
            }
            catch (WebException)
            {
                Console.WriteLine("Соединения с интернетом отсутствует");
                return false;
            }
        }
    }
}

Как работает:

  • Метод ConnectionAvailable делает HTTP-запрос к указанному серверу.
  • В примере — это http://www.google.com.
  • Если ответ от сервера содержит статус 200 OK, значит интернет доступен.
  • В случае исключения или другого кода — соединения нет.

Преимущества такого подхода:

  • Простота реализации;
  • Работает во всех версиях .NET;
  • Проверяется реальное соединение, а не просто наличие сетевого адаптера.

⚠️ Обратите внимание:

  • Такой подход требует доступности указанного сервера (в данном случае Google).
  • В корпоративных сетях запросы могут блокироваться прокси или фаерволом.
  • Можно заменить Google на другой надёжный ресурс или локальный сервер

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *

Этот сайт использует Akismet для борьбы со спамом. Узнайте, как обрабатываются ваши данные комментариев.