Как лучше всего определить, доступно ли сетевое подключение?
c#
networking
Брэд
источник
источник
Ответы:
Вы можете проверить сетевое соединение в .NET 2.0, используя
GetIsNetworkAvailable()
:Чтобы отслеживать изменения IP-адреса или изменения доступности сети, используйте события из класса NetworkChange :
источник
NetworkInterface.GetIsNetworkAvailable()
был очень ненадежным в моем приложении (.NET 4.5, Windows 10), особенно при работе на виртуальной машине. Обработка событий изNetworkAvailabilityChanged
была надежной.Отмеченный ответ на 100% хорош, однако есть определенные случаи, когда стандартный метод обманывают виртуальные карты (виртуальный ящик, ...). Также часто желательно отказаться от некоторых сетевых интерфейсов в зависимости от их скорости (последовательные порты, модемы, ...).
Вот фрагмент кода, который проверяет эти случаи:
источник
Microsoft Windows Vista и 7 используют технику NCSI (индикатор состояния сетевого подключения):
источник
Вызовите этот метод, чтобы проверить сетевое соединение.
Поместите эту строку кода ниже.
источник