Erkennen, wenn das Netzwerkkabel nicht angeschlossen ist
Windows kennt, wenn Sie haben entfernt das Netzwerkkabel aus deiner Netzwerkkarte. Gibt es eine programmatische Möglichkeit zu bestimmen, dies über die API in C++?
Hinweis: ich bin nicht mit .NET und das ist für ein geschlossenes LAN (keine Verbindung zum Internet immer)
InformationsquelleAutor der Frage | 2010-05-26
Du musst angemeldet sein, um einen Kommentar abzugeben.
Raymond Chen gebloggt über etwas ähnliches vor kurzem. Hier ist der entsprechende Dokumentation. Ich denke, die MIB_IPADDR_DISCONNECTED Flagge ist das, was Sie suchen.
InformationsquelleAutor der Antwort Luke
Verwenden Sie die Network List Manager-api mit dem INetwork-api.
Können Sie Ihre app registrieren, erhalten Rückrufe auf, wenn die Netze werden verbunden/nicht verbunden.
Oder Sie können die Liste der Netzwerke und dann überprüfen Sie jeden von Ihnen zu sehen, wenn die Maschine an ein Netzwerk angeschlossen sind oder nicht
Denken Sie daran, dass Sie einen windows-Computer haben oft mehrere Netze (Ethernet, WLAN, etc)
Denken Sie daran, dass, nur weil ein Netzwerk angeschlossen ist, können Sie nicht haben Zugang zum internet. ZB hätte man die DNS-oder routing-Probleme. Oder Sie könnten auf ein funktionierendes Netzwerk, das nicht mit dem internet verbunden.
Aufgrund der oben genannten, viele Diagnose-tools auch eine Verbindung zu einem als "gut" bekannten internet-server, wenn Sie wollen wirklich wissen, ob Sie verbunden sind oder nicht. So etwas wie google.com -Sie verbringen eine Menge Geld, um sicherzustellen, dass Ihre Website die ganze Zeit.
Schließlich können Sie auch eine semi-connected situation, wo die Pakete werden immer durch, aber nicht genug, um wirklich aktivieren der Kommunikation zu fließen. Um dies zu testen, nicht nur ping eine internet-Seite, da würd nur ein paar Pakete. Öffnen Sie stattdessen eine TCP-Verbindung oder etwas mehr als ein ping.
InformationsquelleAutor der Antwort Larry K