Question Comment Windows sait-il s'il a un accès à Internet ou si une connexion Wi-Fi nécessite une authentification dans le navigateur?


Dans Windows 7, l'icône de réseau de la zone de notification affiche un indicateur d'erreur s'il n'y a pas d'accès à Internet. wifi-err, et l'icône d'erreur disparaît une fois la connexion Internet réussie networking normal. Parfois, si la connexion Wi-Fi nécessite une étape d'authentification dans le navigateur, comme sur de nombreux réseaux invités dans les hôtels ou les universités, la bulle suivante apparaît, en disant: additional log on information may be required, click to open your browser

Comment Windows sait-il si sa connexion Internet est réussie?
 Vraisemblablement, il vérifie un service Microsoft en ligne pour voir s'il a une connexion réussie, s'il est redirigé vers une autre page ou s'il n'obtient aucune réponse, mais je n'ai vu nulle part que ce processus ou les services utilisés étaient documentés. . Quelqu'un peut-il expliquer comment cela fonctionne? Je préférerais des réponses qui se réfèrent à des faits, plutôt que de deviner, mais si vous avez un très bien devinez, alors allez-y.

Cette question était un Super User Question de la semaine.
  Lire le 16 mai 2011 entrée de blog pour plus de détails ou soumettre votre propre Question de la semaine.


130
2018-05-02 07:50


origine


S'il vérifiait un service Microsoft, comment passerait-il après l'étape d'activation dans le navigateur? Ou est-ce que je vous comprends mal? (+1 btw, question intéressante) - slhck
@slhck: C'est le but de la vérification: si elle ne peut pas accéder au service correctement, mais que sa tentative certains réponse, il présume qu'il pourrait y avoir une étape dans le navigateur. S'il n'y a pas de réponse à tout, cela suppose qu'il y a juste un accès local. Je ne sais pas exactement comment fonctionne ce processus. J'ai mis à jour ma question pour qu'elle soit un peu plus claire (espérons-le). - nhinkle♦
@nhinkle Je n'ai pas de PC Windows, mais peut-être que quelqu'un peut lancer Wireshark pour voir ce que la machine fait réellement dans un tel cas. - slhck
Lorsque l'indicateur d'erreur indique qu'il n'y a pas d'accès à Internet, ouvrez l'utilitaire de résolution de problèmes réseau. Tandis que le dépanneur s'exécute, vous pouvez clairement voir une étape "Essayer de se connecter à Microsoft.com". Donc, je suppose que cela utilise un service. - Mayank


Réponses:


Après quelques recherches (le nombre de services liés au réseau et à Internet dans Windows est étonnant), je pense que je l'ai trouvé. Windows Vista et Windows 7 disposent de diverses fonctionnalités Network Awareness, notamment l’indicateur d’état de la connectivité réseau qui effectue des tests de connectivité à son tour utilisés par l’icône de la barre système. Le test de connectivité Internet est simple:

  1. NCSI essaie de charger une page spécifique via HTTP (plus précisément: un document texte) et vérifie si elle peut être récupérée.
  2. Si cela échoue, Windows signale "Pas d'accès Internet".

Le mécanisme vérifie également si le domaine sur lequel le document est hébergé résout l'adresse IP attendue. Ainsi, il peut également supposer un accès Internet correct si ce test réussit mais que le document ne peut pas être récupéré.

La raison pour laquelle il indique "Pas d'accès Internet" lorsque vous ne vous êtes pas authentifié sur un Hotspot réside dans le fonctionnement d'un Hotspot. Il bloque tous les ports autres que 80 et 443 (pour HTTP et HTTPS, respectivement), qui sont redirigés vers le serveur d'authentification du hotspot et risquent de gâcher les requêtes DNS d'une manière ou d'une autre. Ainsi, NCSI ne peut ni résoudre le domaine sur lequel son fichier de test est hébergé, ni même atteindre le fichier réel, car le trafic HTTP est redirigé vers le serveur d'authentification.

La source: http://technet.microsoft.com/en-us/library/cc766017%28WS.10%29.aspx


89
2018-05-02 10:00



Un hotspot devrait autoriser le DNS, sinon toute tentative d'accès à un serveur par nom d'hôte (plutôt que par adresse IP) échouerait avec une erreur de type "impossible à résoudre". Selon la configuration du point d'accès, il peut résoudre tous les noms à l'adresse de son serveur d'authentification ou résoudre les noms correctement et se fier uniquement à la redirection des connexions http (s) vers le serveur d'authentification. La partie DNS des vérifications décrites dans le document aimé permet de vérifier que dns.msftncsi.com est résolu à la bonne adresse, et non pas si elle est résolue. - Dave Sherohman
C'est en effet correct. J'ai mis à jour la réponse pour refléter cela. - Tobias Plutat
Awesome find, et bonne description de son fonctionnement! Si aucune meilleure réponse n'apparaît, il y aura bientôt une prime. - nhinkle♦
Il dit aussi No Internet access si vous êtes derrière un proxy;) - Oscar Mederos
Je ne doute pas que ce soit la plupart du temps correct mais cela semble être incomplet. Parfois, vous rencontrerez un problème avec DNS et l'icône de connectivité affichera une fenêtre qui indique que vous avez un accès à Internet, mais que le DNS échoue. Je pense qu'il doit y avoir une étape avant l'étape 1 (ou éventuellement après l'étape 1) qui consiste à essayer de résoudre le DNS. Si cela réussit (mais que la page ne se charge pas), vous obtenez le message d'erreur DNS à la place. - krowe2


Voici les détails de la détermination de l'état de la connexion processus:

La liste suivante décrit comment NCSI peut communiquer avec un site Web pour déterminer si un réseau possède une connectivité Internet:

  1. Une demande de résolution de nom DNS de dns.msftncsi.com

  2. Une requête HTTP pour http://www.msftncsi.com/ncsi.txtretourner 200 OK et le texte Microsoft NCSI

Cela peut être désactivé avec un paramètre de registre. Si vous définissez

 HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\
     NlaSvc\Parameters\Internet\EnableActiveProbing

à 0Windows ne recherchera plus la connectivité Internet.

Apple fait quelque chose de très similaire dans iOS pour détecter la connectivité Internet et les éventuelles pages wifi de connexion de l’hôtel, etc.


68
2018-05-02 10:51



Les nouvelles versions d'Android (je pense que Gingerbread et plus récent ...) le font aussi ... elles afficheront l'icône wifi en blanc si elles peuvent se connecter au réseau, et il deviendra vert si elles peuvent atteindre certains sites hébergés par Google. page. L'idée est la même. - TM.
le kindle fait cela aussi, en quelque sorte. Lorsque je me suis connecté au wifi, il m'a informé que je devais ouvrir mon navigateur et accepter les conditions d'utilisation. Je me demandais comment cela se passait aussi. - Kortuk
Donc si msftncsi.com est tombé, chaque ordinateur Windows 7 ne pourrait pas afficher un signal en ligne? C'est le génie! - liamzebedee


Comme Jeff l'a dit, pour détecter une connexion Internet, Windows fera:

  1. Requête DNS au serveur
  2. Demande HTTP pour un contenu connu

En plus de la réponse de Jeff, je soupçonne:

3. Si la requête HTTP est redirigée vers un Microsoft externe (ou ne renvoie pas le contenu attendu), affichez le message dans votre capture d'écran.


8
2018-05-02 12:29





Pour une connexion nécessitant un enregistrement supplémentaire, il est plus probable que les informations de connexion soient déterminées lors de l'étape de résolution DNS mentionnée par Jeff avec les trois scénarios suivants:

  • Si le système résout la bonne adresse, la connexion est tout à fait claire. (Connectivité Internet)
  • Si le système résout une demande dns mais n’est pas l’adresse correcte, alors il y a une redirection
  • Si le système ne résout pas une demande DNS, il y a des problèmes de connectivité Internet (connexion établie au réseau / point d'accès, mais pas de connectivité Internet)

Je suppose que la demande de:

http://www.msftncsi.com/ncsi.txt

est un moyen rapide de tester si la connexion à Internet est claire. Après cela, les requêtes DNS sont exécutées pour déterminer le statut complet de la connexion.


3
2018-05-04 23:16