Alex Rivera | Logout

check whether Internet connection is available with C#

Asked 2009-07-05T23:19:29.630
26

What is the easiest way to check whether internet connection is available programatically?

EDIT: As suggested I tried using the following method, but it is always returning true.

[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();
}
}

Additional Info (if it helps): I access internet over a shared wifi network.

Edit
Report

1 Answer

2

Network Awareness in Windows XP

Network Awareness in Windows Vista and Windows 7

Of course this does not guarantee the web site you plan to visit is not blocked by cooperative firewall rules, the API just checking if a pre-defined web site is reachable.

answered 2011-09-24T00:54:39.543

Your Answer