В данной статье рассказывается о том, как операционная система Windows определяет подключение к Интернету.
Каждый пользователь операционных систем Windows сталкивался с ситуацией, когда значок сетевой активности в панели задач отображается с желтым треугольником, что означает отсутствие подключения к Интернету.
То же самое можно увидеть и в свойствах сетевого подключения. Каким же образом операционная система определяет, есть ли на данном сетевом интерфейсе соединение с Интернетом, или только доступ к локальной сети?.
Дело в том, что в операционных системах Microsoft начиная с Windows Vista имеется такая функция, как индикатор статуса сетевого подключения (Network Connectivity Status Indicator, NCSI). Эта функция вызывается службой сведений о подключенных сетях (Network Awareness) при подключении к любой сети.
Для определения возможностей сети в NCSI есть множество различных методов, одним из которых является определение возможности выхода в Интернет. Проверка проводится в два этапа:
- При подключении к сети система посылает 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\
laSvc\\Parameters\\Internet
При желании их можно отредактировать. Наиболее важные параметры для IPv4 представленны ниже (для IPv6 просто добавляем префикс V6):
- EnableActiveProbing - наличие автоматической проверки подключения к интернет (1 — проверка включена, 0 — отключена)
- ActiveDNSProbeContent - IP-адрес для проверки DNS
- ActiveDNSProbeHost - имя хоста для проверки DNS
- ActiveWebProbeHost - адрес веб-сайта для проверки
- ActiveWebProbePath - путь к файлу проверки
- ActiveWebProbeContent - содержимое файла