Як 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 - вміст файлу.
Використовуючи ці настройки, можна змінити дефолтні адреси на свої, і піднявши веб-сервер, за його логам відстежувати підключення потрібних комп'ютерів. Втім, сенсу особливого в цьому особисто я не бачу.
.