6
votes

Détecter Internet V. Connexion LAN locale

existe-t-il de toute façon avec Windows API pour détecter si la connexion réseau de Windows 7 est-elle une connexion Internet ou une connexion LAN sans accès à Internet? Windows 7 et Vista l'indiquent dans l'icône du réseau (local uniquement v. Local et Internet), est-il de toute façon pour saisir cette information programmée?


0 commentaires

5 Réponses :


0
votes

Pas parfaitement.

Vous pouvez détecter si vous êtes sur un réseau local de l'adresse IP (supposant que votre DHCP local a distribué une des adresses privées de 192.168.xx.xx.)

Vous pourriez ping un site externe connu pour vérifier si ce réseau local dispose d'une connexion Internet.


2 commentaires

Ce n'est pas parce que l'ordinateur a une adresse IP privée (qui incluent également 10.x.x.x et 172.16-31.x.x) ne signifie pas que ce n'est pas connecté à Internet. Comme quiconque accède à ce site de derrière un routeur de maison effectuant Nat peut attester!


Ce n'était pas clair ce que l'OP vous demandait. IE. connexion Internet direct vs nat



1
votes

pinging 4.2.2.2 est un moyen courant de déterminer si la connectivité Internet est présente.

L'histoire derrière cette se trouve ici .


3 commentaires

Intéressant. Qu'est-ce que vnsc-bak.sys.gtei.net?


Bien que maintenant 8.8.8.8 est probablement meilleur (voici la puissance de Google)


@Martin: Oui, bien que 4.2.2.2 est maintenant la mémoire musculaire pour moi. Je ne sais pas si je peux supporter d'apprendre 8.8.8.8 et son angle inconfortable entre l'index et le majeur.



3
votes

http://msdn.microsoft.com/ FR-US / Bibliothèque / AA370750 (vs.85) .aspx Décrit la différence entre ISconnected et isconnectedTerternet . Windows 7 seulement. Je n'ai pas d'échantillon de code natif pratique, désolé.


1 commentaires

Merci, c'est exactement le genre de chose que je cherche.



0
votes

Windows 7 effectue la requête DNS pour dns.msftncsi.com 5 secondes après l'établissement de la liaison. Ne vois aucune raison de le faire, à l'exception de la vérification de la connexion Internet.


0 commentaires

0
votes

Le pack de code de l'API Windows le fera pour vous http://archive.msdn.microsoft.com/windowsapicodepack

Sa classe NetworkListManager a une propriété isconnecte qui indique si vous avez une connexion LAN

et une propriété IsconnectedTerternet qui indique si vous avez une connexion Internet

Le téléchargement du pack contient une application de démonstration réseau qui démontre cette


1 commentaires

La question est étiquetée c ++ signifiant code natif. Le pack de code (que j'adore et suis partiellement responsable) est le code géré, par exemple C #