Blog. Just Blog

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

Версия для печати Добавить в Избранное Отправить на E-Mail | Категория: Software | Автор: ManHunter
Как Windows определяет состояние подключения к Интернету
Как Windows определяет состояние подключения к Интернету

Если вы работаете с системой Windows, то наверняка сталкивались с тем, что на значке сетевого или беспроводного подключения появляется желтый восклицательный знак. Это означает отсутствие подключения к Интернету. Как же Windows определяет, что интернет недоступен? Об этом я вам сегодня расскажу.

Во всех современных системах Windows, начиная с Vista, при подключении к любой сети в обязательном порядке активируется индикатор статуса сетевого подключения (Network Connectivity Status Indicator, сокращенно NCSI). Одним из параметров, который отслеживает NCSI, является определение возможности доступа в Интернет. Эта проверка выполняется в два этапа.

Сперва отправляется HTTP-запрос по адресу www.msftncsi.com на загрузку файла ncsi.txt. Это самый обычный текстовый файл, в нем содержится всего одна строка Microsoft NCSI. В случае доступности интернета сервер должен вернуть код состояния 200 ОК и файл с указанной строкой.

Затем проверяется работоспособность службы DNS, для чего NCSI пытается отрезолвить доменное имя dns.msftncsi.com. Если все работает корректно, то этому домену должен соответствовать IP-адрес 131.107.255.255.

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

Настройки в реестре
Настройки в реестре

Все настройки NCSI, связанные с проверкой подключения, находятся в ветке реестра HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\services\NlaSvc\Parameters\Internet и при желании их можно отредактировать, хотя лично я бы не советовал этого делать. Параметр EnableActiveProbing отвечает за автоматическую проверку подключения (1 - включено, 0 - выключено). Значения других ключей понятны из их названия, это адреса серверов и имен файлов для проверки, ожидаемые значения содержимого файла и IP-адресов. Для протокола IPv6 к именам параметров просто добавлен суффикс "V6".

Поделиться ссылкой ВКонтакте Поделиться ссылкой на Facebook Поделиться ссылкой на LiveJournal Поделиться ссылкой в Мой Круг Добавить в Мой мир Добавить на ЛиРу (Liveinternet) Добавить в закладки Memori Добавить в закладки Google
Просмотров: 2233 | Комментариев: 3

Метки: Windows 7, сеть
Внимание! Статья опубликована больше года назад, информация могла устареть!

Комментарии

Отзывы посетителей сайта о статье
Vit (26.01.2020 в 11:27):
НЕ соглашусь со вторым пунктом. Я умышленно вношу некорректные данные в параметр  ActiveDNSProbeContent, но восклицательный знак не появляется...
ManHunter (13.05.2019 в 15:20):
NT, просто почитать: http://www.manhunter.ru/assemb...emblere.html
NT (11.05.2019 в 15:54):
Интересно, есть ли в реестре Windows ключ, позволяющий скрыть от программы наличие сети или доступа в Интернет? Как например многие перестают виснуть на блокировке Брандмауэром и не доходят даже до перечисления сетевых интерфейсов если на время запуска программы удалить ключ "Transports" в "HKLM\SYSTEM\CurrentControlSet\Services\Winsock\Parameters".

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

Заполните форму для добавления комментария
Имя*:
Текст комментария (не более 2000 символов)*:

*Все поля обязательны для заполнения.
Комментарии, содержащие рекламу, ненормативную лексику, оскорбления и т.п., а также флуд и сообщения не по теме, будут удаляться. Нарушителям может быть заблокирован доступ к сайту.
Наверх
Powered by PCL's Speckled Band Engine 0.2 RC3
© ManHunter / PCL, 2008-2020
При использовании материалов ссылка на сайт обязательна
Время генерации: 0.07 сек. / MySQL: 2 (0.0037 сек.) / Память: 4.75 Mb
Наверх