Как определить, подключен ли сетевой интерфейс к Интернету (т. Е. Компьютер подключен) - PullRequest
4 голосов
/ 13 октября 2010

Мне нужен способ определить доступность интернета программно.В настоящее время я использую Ping, чтобы постоянно пинговать какой-то интернет-сайт.

Но, похоже, Windows 7 определяет доступность интернета другим способом.Если компьютер подключен к сети, на значке сетевого интерфейса в системном трее есть значок заземления.

Вопрос в том, существует ли какой-либо стандартный способ Win32 проверить состояние в сети, выиграть событие или еще что-то, и если да, то как это сделать?использовать это из C #?

Ответы [ 2 ]

4 голосов
/ 13 октября 2010

Я полагаю, что что-то подобное будет работать, хотя ваш вопрос выглядит дубликатом:

using System;
using System.Runtime;
using System.Runtime.InteropServices;

public class InternetCS
{
    //Creating the extern function...
    [DllImport("wininet.dll")]
    private extern static bool InternetGetConnectedState( out int Description, int ReservedValue );

    //Creating a function that uses the API function...
    public static bool IsConnectedToInternet( )
    {
        int Desc ;
        return InternetGetConnectedState( out Desc, 0 ) ;
    }
}

здесь:

проверьте, доступно ли подключение к Интернету с C #

2 голосов
/ 13 октября 2010

«Подключен к Интернету» не имеет никакого реального значения, кроме случая с модемом. Лучший способ проверить, доступен ли какой-либо ресурс, - это использовать его. В любом случае, в этот момент вам придется справляться со сбоями, не нужно все кодировать дважды.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...