Каким образом Windows определяет наличие выхода в Интернет?

Начиная с Vista, операционные системы Microsoft Windows научились определять функциональные возможности сетей, к которым вы подключены: система безошибочно рапортует, если ли соединение с интернетом, доступ только к локальной сети или сеть вообще недоступна. Вам когда нибудь было любопытно, каким образом это происходит? Если да - давайте посмотрим, какие механизмы задействует ОС, чтобы сообщить пользователю возможности текущего подключения.


В Windows Vista и Windows 7 есть такая функция, как Network Connectivity Status Indicator (NCSI), индикатор статуса сетевого подключения. Она вызывается и используется службой «Служба сведений о подключенных сетях» (Network Awareness) при подключении к какой-либо сети. В NCSI реализовано множество методов определения возможностей сети, наиболее интересным из которых является определение возможности выхода в Интернет. Это происходит следующим образом:
  1. После подключения к сети операционная система пытается открыть файл http://www.msftncsi.com/ncsi.txt
    Это обычный текстовый файл, содержащий строку Microsoft NCSI. Ожидаемый ответ от сервера — заголовок 200 ОК и эта строка.
  2. Второй шаг — проверка работоспособоности DNS. Для этого NCSI пытается определить IP-адрес хоста dns.msftncsi.com. Ожидаемое значение — 131.107.255.255.

Варианты дальнейшего развития событий здесь таковы:

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

Microsoft NCSI и анонимность

Веб сервер, установленный на сайте www.msftncsi.com, насколько нам известно, это IIS, хранит в логах все IP-адреса, c которых был запрошен файл ncsi.txt. Согласно заявлению Microsoft эти данные не используются для установления личности пользователя, с компьютера которого пришел запрос. В случае, когда компьютер подключен, например, к корпоративной сети предприятия, то адресом, запросившим ncsi.txt, выступает адрес компьютера, предоставляющего доступ к Интернет, как правило, посредством NAT/Proxy.

Управление и настройка NCSI

Функция Network Connectivity Status Indicator может быть настроена или отключена совсем посредством изменения её параметров через реестр.

  • Чтобы совсем отключить функцию NCSI, необходимо перейти в раздел реестра
    [code]HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\NlaSvc\Parameters\Internet[/code]
    и изменить значение параметра EnableActiveProbing на ноль. Проверка подключения к Интернет описанным выше способом выполняться не будет.
  • Вы можете изменить адрес веб-сервера, имя и содержимое файла, запрашиваемого NCSI, а также имя и IP-адрес хоста, используемого для проверки DNS
    Для этого служат соответствующие параметры в том же разделе реестра
    [code]HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\NlaSvc\Parameters\Internet[/code]
    ActiveDnsProbeContent — IP-адрес хоста для проверки DNS
    ActiveDnsProbeHost – имя хоста для проверки DNS
    ActiveWebProbeHost — адрес веб-сайта, на котором размещен файл для проверки наличия подключения к Internet
    ActiveWebProbePath – путь к файлу проверки
    ActiveWebProbeContent — содержимое файла проверки
    Оставшиеся параметры управляют интервалами опроса сервера.

К примеру, я могу разместить на winreviewer.com файл winreviewer.com/ncsi/ncsi.txt с содержимым winreview ncsi и использовать всё это, изменив параметры на следующие:

ActiveWebProbeHost = winreviewer.com
ActiveWebProbePath = ncsi/ncsi.txt
ActiveWebProbeContent = winreview ncsi

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

💡Узнавайте о новых статьях быстрее. Подпишитесь на наши каналы в Telegram и Twitter.

Судя по тому, что вы читаете этот текст, вы дочитали эту статью до конца. Если она вам понравилась, поделитесь, пожалуйста, с помощью кнопок ниже. Спасибо за вашу поддержку!

Автор: Сергей Ткаченко

Сергей Ткаченко создал этот сайт в далёком 2009 году, и с тех пор продолжает над ним работать, публикуя новые материалы о Windows и её приложениях практически каждый день.

Каким образом Windows определяет наличие выхода в Интернет?: 4 комментария

  1. Отключился и подключился к сети заново. Затем заглянул в список разрешенных адресов (ipconfig /displaydns), msftncsi.com не обнаружилось. Почему так?

  2. есть такое подозрение, что, возможно, чтобы не загромождать общую картинку, этот адрес из вывода отфильтровывается… ipconfig майкрософтом написан

Обсуждение закрыто.

css.php