C#. Как определить состояние подключения к интернету
В библиотеке .NET нет функции для проверки состояния подключения к интернету. Для проверки состояния и получения некоторых настроек можно использовать функцию InternetGetConnectedState из библиотеки WINAPI. Эту функцию можно использовать для различных протоколов, типа: Gopher, FTP и HTTP. В использовании InternetGetConnectedState нет ничего сложного. Эта функция импортируется из библиотеки WININET и после использования возвращает True или False, при этом в заданную переменную записывается значение, которое впоследствии сравнивается с константами.
Функция позволяет определять посредством чего выполнено подключение к интернету (модем или LAN), используется ли proxy и установлен ли RAS(Remote Access Service).
Первым делом создаем класс InternetConnection и задаем константы:
1
[Flags]
2
publicenumInternetConnectionState : int
3
{
4
INTERNET_CONNECTION_MODEM = 0x1,
5
INTERNET_CONNECTION_LAN = 0x2,
6
INTERNET_CONNECTION_PROXY = 0x4,
7
INTERNET_RAS_INSTALLED = 0x10,
8
INTERNET_CONNECTION_OFFLINE = 0x20,
9
INTERNET_CONNECTION_CONFIGURED = 0x40
10
}
Импортируем нужную нам функцию из библиотеки WININET: