There is no way you can reliably check if there is an internet connection, but we can come close.

/// <summary>
/// There is no way you can reliably check if there is an internet connection,
/// but we can come close.
/// </summary>
public static bool HasInternetConnection
{
    get
    {
        var result = false;

        try
        {
            if (NetworkInterface.GetIsNetworkAvailable())
            {
                using (var p = new Ping())
                {
                    result = (p.Send("8.8.8.8", 15000).Status == IPStatus.Success) ||
                             (p.Send("8.8.4.4", 15000).Status == IPStatus.Success) ||
                             (p.Send("4.2.2.1", 15000).Status == IPStatus.Success);
                }
            }
        }
        catch {}

        return result;
    }
}