Uso del Network List Manager api con el INetwork API.
Puede registrar su aplicación para recibir devoluciones de llamada cuando las redes se conectan/no están conectadas.
O puede obtener la lista de redes y compruebe cada uno de ellos para ver si la máquina es la red conectada o no
Recuerde que una máquina Windows a menudo se han establecido varias redes hacia arriba (Ethernet, WiFi, etc.)
Recuerde que solo porque una red está conectada, es posible que no tenga acceso a Internet. Por ejemplo, podría tener problemas de DNS o enrutamiento. O podría estar en una red que no está conectada a Internet.
Debido a lo anterior, muchas herramientas de diagnóstico también se conectan a un servidor de Internet "bien conocido" si realmente quieren saber si están conectadas o no. Algo así como google.com: gastan una gran cantidad de dinero para asegurarse de que su sitio esté activo todo el tiempo.
Finalmente, también puede tener una situación semiconnectada en la que los paquetes se están transfiriendo, pero no lo suficiente como para permitir realmente el flujo de las comunicaciones. Para probar esto, no solo haga ping a un sitio de internet, ya que eso solo sería un par de paquetes. En su lugar, abra una conexión TCP o algo más que un ping.
Haga ping en google.com, y si no obtiene respuesta, considere desconectar el cable. :) – Dima
Eso solo funciona si estás conectado a Internet a través de una puerta de enlace no de una LAN cerrada :) –