Используйте Network List Manager API с INetwork API.
Вы можете зарегистрировать свое приложение для получения обратных вызовов, когда сети становятся подключенными / не подключенными.
Или вы можете получить список сетей, а затем проверить каждую из них, чтобы увидеть, подключено ли устройство к сети или нет
Помните, что на машине с Windows часто настроено несколько сетей (Ethernet, Wi-Fi и т. Д.)
Помните, что только из-за того, что сеть подключена, у вас может не быть доступа к Интернету. Например, у вас могут быть проблемы с DNS или маршрутизацией. Или вы можете работать в сети, которая не подключена к Интернету.
Из-за вышеизложенного многие диагностические инструменты также подключаются к «заведомо исправному» интернет-серверу, если они действительно хотят знать, подключены они или нет. Что-то вроде google.com - они тратят много денег, чтобы убедиться, что их сайт постоянно работает.
Наконец, вы также можете иметь полуподключенную ситуацию, когда пакеты проходят, но не достаточно, чтобы действительно обеспечить обмен данными. Чтобы проверить это, не просто пингуйте интернет-сайт, так как это будет только пара пакетов. Вместо этого откройте TCP-соединение или нечто большее, чем пинг.