Определение состояния и типа сетевого подключения с использованием функции Windows API «IsNetworkAlive».

     Для определения подключена ли локальная система к сети, а также информации о типе соединения (LAN, WAN) необходимо воспользоваться функцией Windows API «IsNetworkAlive». Данная функция возвращает значение «True» если локальная система имеет сетевое подключение, в противном случае возвращает «False». Функция работает только с TCP/IP-соединениями и в качестве аргументов принимает только один параметр «lpdwFlags».
      Для определения типа соединения «Local Area Network», необходимо при вызове передать параметр «NETWORK_ALIVE_LAN»:
static int NETWORK_ALIVE_LAN = 0x00000001;
      Если компьютер имеет одну или несколько активных LAN-карт, функция вернет значение «True». Чтобы определить тип соединения «Wide Area Network», необходимо передать параметр «NETWORK_ALIVE_WAN»:
static int NETWORK_ALIVE_WAN = 0x00000002;
      Функция вернет значение «True», если компьютер имеет одно или несколько активных RAS-соединений. В случае если функция в обоих случаях вернула значение «False», это означает, что сетевое подключение отсутствует. Ниже представлен листинг вызова данной функции и вывода результата ее работы в сообщении.
[System.Runtime.InteropServices.DllImport("sensapi.dll")]
private extern static bool IsNetworkAlive(ref int flags);
private static int NETWORK_ALIVE_LAN = 0x00000001;
private static int NETWORK_ALIVE_WAN = 0x00000002;

private void Form1_Load(object sender, EventArgs e)
{
    if (!IsNetworkAlive(ref NETWORK_ALIVE_LAN))
    {
        if (IsNetworkAlive(ref NETWORK_ALIVE_WAN))
        {
            MessageBox.Show("Вы подключены к Wide Area Network",
                "Проверка подключения",
                MessageBoxButtons.OK,
                MessageBoxIcon.Information);
        }
        else
            MessageBox.Show("Проблемы с определением типа покдючения!",
                "Проверка подключения",
                MessageBoxButtons.OK,
                MessageBoxIcon.Warning);
    }
    else
        MessageBox.Show("Вы подключены к Local Area Network",
            "Проверка подключения",
            MessageBoxButtons.OK,
            MessageBoxIcon.Information);    
}
      С помощью данной функции можно адаптировать ваше приложение к различным типам подключения к сети, будь это клиент электронной почты, или интернет-браузер. Например, операция печати может быть отложена до тех пор, пока сетевое соединение не будет восстановлено.
Дополнительную информацию по данной функции вы можете получить по следующему адресу: https://msdn.microsoft.com.

Ссылка для скачивания примера: Яндекс.Диск


Комментариев нет:

Отправить комментарий

Большая просьба, не писать в комментариях всякую ерунду не по теме!