Используйте Network List Manager api с INetwork апи.
Вы можете зарегистрировать свое приложение для получения обратных вызовов, когда сети становятся подключенными/не подключенными.
Или вы можете получить список сетей, а затем проверить каждый из них, чтобы увидеть, если машина сеть подключена или нет
Помните, что машина окна часто имеют несколько сетей настройки (Ethernet, Wi-Fi и т.д.)
Помните, что только потому, что сеть подключена, у вас может не быть доступа в Интернет. Например, у вас могут быть проблемы с DNS или маршрутизацией. Или вы можете быть в рабочей сети, которая не подключена к Интернету.
Из-за вышеизложенного многие диагностические инструменты также подключаются к «хорошо известному» интернет-серверу, если они действительно хотят знать, связаны ли они или нет. Что-то вроде google.com - они тратят много денег, чтобы убедиться, что их сайт постоянно.
Наконец, вы также можете иметь ситуацию с полусвязью, когда пакеты проходят, но недостаточно, чтобы действительно обеспечить обмен информацией. Чтобы проверить это, не просто ping интернет-сайт, так как это будет только пара пакетов. Вместо этого откройте TCP-соединение или что-то большее, чем пинг.
Ping google.com, и если вы не получите ответа, рассмотрите кабель, отсоединенный от сети. :) – Dima
Это работает только в том случае, если вы подключены к Интернету через какой-то шлюз, а не в закрытую ЛВС :) – 2010-05-26 20:13:22