Compruebe si la conexión a Internet está disponible con C #

¿Cuál es la forma más fácil de verificar si la conexión a Internet está disponible mediante programación?

EDITAR: Como se sugirió, intenté usar el siguiente método, pero siempre es verdadero.

[Flags]
enum InternetConnectionState : int
{
    INTERNET_CONNECTION_MODEM = 0x1,
    INTERNET_CONNECTION_LAN = 0x2,
    INTERNET_CONNECTION_PROXY = 0x4,
    INTERNET_RAS_INSTALLED = 0x10,
    INTERNET_CONNECTION_OFFLINE = 0x20,
    INTERNET_CONNECTION_CONFIGURED = 0x40
}

class Program
{
    [DllImport("WININET", CharSet = CharSet.Auto)]
    static extern bool InternetGetConnectedState(ref InternetConnectionState lpdwFlags, int dwReserved);

static void Main(string[] args)
{
    InternetConnectionState flags = 0;
    bool isConnected = InternetGetConnectedState(ref flags, 0);
    Console.WriteLine(isConnected);
    //Console.WriteLine(flags);
    Console.ReadKey();
}
}

Información adicional (si ayuda): accedo a internet a través de una red wifi compartida.

Respuestas a la pregunta(9)

Su respuesta a la pregunta