Заметки о Windows и других программных продуктах Microsoft...

Как Windows определяет подключение к Интернету

Как Windows определяет подключение к Интернету

Наверняка каждый пользователь операционных систем Windows сталкивался с ситуацией, когда значок сетевого подключения в панели задач отображался с желтым треугольником, что означает отсутствие подключения к Интернету.

То же самое можно увидеть и в свойствах сетевого подключения. Каким же образом операционная система определяет, есть ли на данном сетевом интерфейсе соединение с Интернетом, или только доступ к локальной сети?

свойства сетевого подключения

 

А дело в том, что в операционных системах Microsoft начиная с Windows Vista есть такая функция, как индикатор статуса сетевого подключения (Network Connectivity Status Indicator, NCSI). Эта функция вызывается службой сведений о подключенных сетях (Network Awareness) при подключении к любой сети.

служба сведений о подключенных сетях

 

Для определения возможностей сети в NCSI есть множество различных методов, одним из которых является определение возможности выхода в Интернет. Проверка проводится в два этапа:

• При подключении к сети система посылает HTTP-запрос по адресу http://www.msftncsi.com/ncsi.txt. Это обычный текстовый файл, в котором содержится всего одна строка Microsoft NCSI. В случае успешного запроса от сервера должен прийти ответ с заголовком 200 ОК, содержащий эту строку;
• На втором этапе проверяется работоспособность службы DNS, для чего NCSI пытается разрешить в IP-адрес имя dns.msftncsi.com. Ожидаемое значение 131.107.255.255

По завершении проверки, если оба этапа были успешно пройдены, система считает что доступ в Интернет имеется. Если файл ncsi.txt недоступен, а dns.msftncsi.com не разрешается или разрешается с другим IP-адресом, то система сообщает о невозможности подключения к Интернет. В том случае, если ncsi.txt недоступен, но dns.msftncsi.com разрешается в правильный IP — система выдает сообщение о необходимости аутентификации через браузер.

Настройки NCSI находятся в системном реестре, в разделе HKLM\System\CurrentControlSet\Services\NlaSvc\Parameters\Internet, при желании их можно отредактировать. Вот наиболее важные параметры для IPv4 (для IPv6 просто добавляем префикс V6):

EnableActiveProbing — наличие автоматической проверки подключения к интернет (1 — проверка включена, 0 — отключена);
ActiveDNSProbeContent — IP-адрес для проверки DNS;
ActiveDNSProbeHost — имя хоста для проверки DNS;
ActiveWebProbeHost — адрес веб-сайта для проверки;
ActiveWebProbePath — путь к файлу проверки;
ActiveWebProbeContent — содержимое файла.

настройки реестра для службы сведений о подключенных сетях

 

Используя эти настройки, можно изменить дефолтные адреса на свои, и подняв веб-сервер, по его логам  отслеживать подключения нужных компьютеров. Впрочем, смысла особого в этом лично я не вижу.

 
 
Комментарии

Я вижу,что скриншоны показаны от Windows 8. А для Windows 7 тоже так должно быть в реестре?Меня беспокоят дубликаты с V6.

Да, для семерки все так же.

Спасибо ! У меня WinServer 2008 R2 настроен как шлюз (через общий доступ к Инету).
Инет есть и с сервера и у клиентов. А вот в свойствах сетевого подключения стоит желтый треугольник — Без подключения к Инету. Не знаете ли, как это исправить ?

Можно попробовать изменить настройки NCSI в реестре, например. Только зачем, если все работает 🙂

а вот я всегда меняю дефолт на рукамипрописанные, в этом есть свой плюс, пусть долбится, а вот уведомление не нужно!