Détecter Le Moment Où Le Câble Réseau Débranché
Windows sait quand vous avez enlevé le câble de réseau à partir de votre carte réseau. Est-il un moyen via un programme pour déterminer ce via l'API en C++?
Note: je ne suis pas à l'aide .NET et c'est fermé LAN (non connecté à Internet jamais)
- Ping google.com et si vous n'obtenez pas de réponse considérer le câble débranché. 🙂
- Qui ne fonctionne que si vous êtes connecté à Internet, par l'intermédiaire de la passerelle de pas fermé LAN 🙂
Vous devez vous connecter pour publier un commentaire.
Raymond Chen blogué à propos de quelque chose de similaire récemment. Voici la la documentation. Je pense que le MIB_IPADDR_DISCONNECTED drapeau est ce que vous cherchez.
Utiliser le Réseau du Gestionnaire de la Liste de l'api avec le INetwork api.
Vous pouvez inscrire votre application pour recevoir des rappels lorsque les réseaux deviennent connecté/non connecté.
Ou vous pouvez obtenir la liste des réseaux et de vérifier ensuite chacun d'eux pour voir si l'ordinateur est connecté au réseau ou pas
Rappelez-vous qu'une machine windows ont souvent de multiples réseaux (Ethernet, wifi, etc)
Rappeler que juste parce qu'un réseau est connecté, vous ne pouvez pas avoir accès à internet. Par exemple, vous pourriez avoir DNS ou des problèmes de routage. Ou vous pourriez être sur un réseau qui n'est pas connecté à internet.
Pour cette raison, de nombreux outils de diagnostic également se connecter à un "bon" serveur internet si ils veulent vraiment savoir s'ils sont connectés ou non. Quelque chose comme google.com -- ils dépensent beaucoup d'argent pour s'assurer que leur site est en place tout le temps.
Enfin, vous pouvez également avoir un semi-connecté situation où les paquets sont passés mais pas assez pour vraiment permettre des communications à l'écoulement. Pour tester cela, ne vous contentez pas de ping sur un site internet depuis que j'avais seulement une paire de paquets. Au lieu de cela, ouvrir une connexion TCP ou quelque chose de plus qu'un ping.