Что лучший способ состоит в том, чтобы проверить на интернет-соединение с помощью.NET?

Каков самый быстрый и самый эффективный способ проверить на интернет-соединение в.NET?

223
задан Palec 7 August 2014 в 09:50
поделиться

4 ответа

[

] Что-то подобное должно работать.[

] [

][]System.Net.WebClient[][

] [
public static bool CheckForInternetConnection()
{
    try
    {
        using (var client = new WebClient())
            using (client.OpenRead("http://google.com/generate_204")) 
                return true; 
    }
    catch
    {
        return false;
    }
}
]
270
ответ дан 23 November 2019 в 04:00
поделиться
[
public static bool HasConnection()
{
    try
    {
        System.Net.IPHostEntry i = System.Net.Dns.GetHostEntry("www.google.com");
        return true;
    }
    catch
    {
        return false;
    }
}
] [

] Это работает [

].
-3
ответ дан 23 November 2019 в 04:00
поделиться

Нет абсолютно никакого способа надежно проверить, есть ли подключение к Интернету (я полагаю, вы имеете в виду доступ к Интернету).

Однако вы можете запрашивать ресурсы, которые практически никогда не отключены от сети, например пинговать google.com или что-то подобное. Я думаю, это было бы эффективно.

try { 
    Ping myPing = new Ping();
    String host = "google.com";
    byte[] buffer = new byte[32];
    int timeout = 1000;
    PingOptions pingOptions = new PingOptions();
    PingReply reply = myPing.Send(host, timeout, buffer, pingOptions);
    return (reply.Status == IPStatus.Success);
}
catch (Exception) {
    return false;
}
77
ответ дан 23 November 2019 в 04:00
поделиться

Вместо проверки, просто выполните действие (веб-запрос, почта, ftp и т.д.) и будьте готовы к тому, что запрос не пройдет, что вы должны сделать в любом случае, даже если проверка прошла успешно.

Рассмотрим следующее:

1 - check, and it is OK
2 - start to perform action 
3 - network goes down
4 - action fails
5 - lot of good your check did

Если сеть не работает, ваше действие будет неудачным так же быстро, как и пинг и т.д.

1 - start to perform action
2 - if the net is down(or goes down) the action will fail
40
ответ дан 23 November 2019 в 04:00
поделиться
Другие вопросы по тегам:

Похожие вопросы: