Определить, находится ли веб-браузер в автономном режиме в компоненте C # WebBrowser?
-
19-09-2019 - |
Вопрос
Мы работаем над обернутым компонентом WebBrowser.Мы хотели бы отобразить одну страницу (напримерoursite.com/thispage.html ) если пользователь находится в сети, а другая страница (напримерC:\somewhere hispage_offline.html ) если пользователь находится в автономном режиме.Я могу правильно отображать обе страницы, но моя проблема заключается в определении статуса онлайн / оффлайн.
Я пытался Веб-браузер.IsOffline;однако, похоже, что это только передает статус автономного режима, а не то, действительно ли компьютер может выйти в Интернет.
Есть ли способ обнаружить это с помощью компонента WebBrowser?Есть ли вообще какой-нибудь способ?
Спасибо за всю вашу помощь!
Решение
Самый простой способ проверить наличие подключения к Интернету - это пропинговать ваш сервер.
Попробуйте этот код:
public static bool IsOnline() {
var pinger = new Ping();
try {
return pinger.Send("oursite.com").Status == IPStatus.Success;
} catch(SocketException) { return false; } catch(PingException) { return false; }
}
В качестве альтернативы, вы можете попробовать использовать WebRequest
класс отправить запрос на простую страницу вашего сайта и посмотреть, будет ли он выполнен успешно.Это лучший вариант, потому что он также гарантирует, что IIS (или Apache) запущен на сервере.
Другие советы
Что, если бы вы просто использовали Пинг-понг класс, чтобы узнать, доступен ли сайт?