web-dev-qa-db-fra.com

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

Sous Windows 7, l’icône réseau de la zone de notification affiche un indicateur d’erreur si aucun accès Internet n’est disponible. wifi-err, et l'icône d'erreur disparaît une fois la connexion Internet établie 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 contextuelle suivante apparaît, indiquant le même résultat: additional log on information may be required, click to open your browser

Comment Windows sait-il s'il dispose ou non d'une connexion Internet réussie?
Vraisemblablement, il vérifie un service en ligne de Microsoft pour voir s’il a une connexion établie, est redirigé vers une autre page ou n’obtient aucune réponse, mais je n’ai jamais vu ce processus ou ce processus les services utilisés sont 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 simplement deviner, mais si vous avez un vraiment bon deviner, alors allez-y.

Cette question était uneQuestion de la semaine concernant le super utilisateur.
Lisez l’entrée du blog du 16 mai 2011pour plus de détails ousoumettez la vôtreQuestion de la semaine.

131
nhinkle

Après quelques recherches (le nombre impressionnant de services liés au réseau et à Internet dans Windows est étonnant), je pense l'avoir trouvé. Windows Vista et 7 intègrent diverses fonctionnalités de Network Awareness, notamment l'indicateur d'état de la connectivité réseau, qui effectue des tests de connectivité qui sont utilisés par l'icône de la barre des tâches réseau. Le test de la connectivité Internet est simple:

  1. NCSI tente 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 n'aboutit pas, Windows indique "Pas d'accès Internet".

Le mécanisme vérifie également si le domaine sur lequel le document est hébergé est résolu en adresse IP attendue. Donc, il peut aussi supposer un accès Internet adéquat si le test est réussi mais que le document ne peut pas être récupéré.

La raison pour laquelle il signale "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 point d'accès sans fil et peuvent perturber 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é, et même s’il le pouvait, il n’atteindrait pas le fichier lui-même car le trafic HTTP est redirigé sur le serveur d’authentification.

Source: http://technet.Microsoft.com/en-us/library/cc766017%28WS.10%29.aspx

90
Tobias Plutat

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 dispose d'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.txt renvoyant 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

à 0, Windows ne recherchera plus la connectivité Internet.

Dans iOS, Apple fait quelque chose de très similaire pour détecter la connectivité Internet et les pages Wi-Fi de connexion des hôtels, etc.

69
Jeff Atwood

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

  1. Requête DNS au serveur
  2. Requête HTTP pour 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 sur votre capture d'écran.

8
Macke

Pour une connexion nécessitant des informations de connexion supplémentaires, il est plus probable que les informations soient déterminées via l'étape de résolution DNS mentionnée par Jeff, dans les trois cas suivants:

  • Si le système résout la bonne adresse, la connexion est entièrement effacée. (Connectivité Internet)
  • Si le système résout une demande DNS mais que l'adresse n'est pas correcte, il y a une ré-orientation (possibilité d'ajouter des informations de connexion sur le journal).
  • Si le système ne résout pas une demande DNS, des problèmes de connectivité Internet se posent (la connexion est établie avec le réseau/le point d'accès mais pas de connexion Internet).

Je suppose que la demande de:

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

est un moyen rapide de vérifier 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
James Mertz