Russian Qt Forum
Сентябрь 29, 2024, 00:31 *
Добро пожаловать, Гость. Пожалуйста, войдите или зарегистрируйтесь.
Вам не пришло письмо с кодом активации?

Войти
 
  Начало   Форум  WIKI (Вики)FAQ Помощь Поиск Войти Регистрация  

Страниц: [1]   Вниз
  Печать  
Автор Тема: Как узнать, что интернет пропал и появился?  (Прочитано 7420 раз)
Caduceus
Гость
« : Март 29, 2012, 10:12 »

Нужно узнавать моменты когда сети нет и когда появилась. Я так понимаю лучше в отдельном потоке что-то пинговать? Есть у кого пример такой штуки на Qt?
Записан
ecspertiza
Супер
******
Offline Offline

Сообщений: 1053


С уважением, мастер конфетного цеха!


Просмотр профиля
« Ответ #1 : Март 29, 2012, 12:27 »

Примера нету, но как самы простой вариант QNetworkAccessManager , и слать гет например на ya.ru  если в finished пришел еррор стало быть инета нет, если не еррор, то инет есть ))) Можно слать например раз в минуту, даже можно слать не гет ,а head что бы меньше трафика кушать.
Записан
Bepec
Гость
« Ответ #2 : Март 29, 2012, 13:07 »

А можно вообще тупо запускать ping /смотреть ответ.
Или же использовать сокеты win Api.
Или QNAM как предложили.
Записан
kambala
Джедай : наставник для всех
*******
Offline Offline

Сообщений: 4744



Просмотр профиля WWW
« Ответ #3 : Март 29, 2012, 13:08 »

по идее нативные апи платформ должны предоставлять такие функции
Записан

Изучением C++ вымощена дорога в Qt.

UTF-8 has been around since 1993 and Unicode 2.0 since 1996; if you have created any 8-bit character content since 1996 in anything other than UTF-8, then I hate you. © Matt Gallagher
Fregloin
Супер
******
Offline Offline

Сообщений: 1025


Просмотр профиля
« Ответ #4 : Март 30, 2012, 15:40 »

вот например как в семерке определяется есть инет или нет? пингуется сайт майкросфт?
Записан
kambala
Джедай : наставник для всех
*******
Offline Offline

Сообщений: 4744



Просмотр профиля WWW
« Ответ #5 : Март 30, 2012, 16:00 »

http://msdn.microsoft.com/en-us/library/windows/desktop/aa374765(v=vs.85).aspx вроде то, что надо
Записан

Изучением C++ вымощена дорога в Qt.

UTF-8 has been around since 1993 and Unicode 2.0 since 1996; if you have created any 8-bit character content since 1996 in anything other than UTF-8, then I hate you. © Matt Gallagher
Alex Custov
Джедай : наставник для всех
*******
Offline Offline

Сообщений: 2063


Просмотр профиля
« Ответ #6 : Март 30, 2012, 16:25 »

Если в сети нет каких-то файрволов, то я бы просто коннектился через сокет на 8.8.8.8:53. Коннект прошёл - сеть есть.
Записан
V1KT0P
Гость
« Ответ #7 : Март 30, 2012, 17:18 »

Если в сети нет каких-то файрволов, то я бы просто коннектился через сокет на 8.8.8.8:53. Коннект прошёл - сеть есть.
Лучше не ограничиваться одним адресом. Можно еще проверять корневые ДНС.
Записан
Bepec
Гость
« Ответ #8 : Март 30, 2012, 17:44 »

8.8.8.8 помоему и есть DNS сервер. Подмигивающий
Записан
V1KT0P
Гость
« Ответ #9 : Март 30, 2012, 17:48 »

8.8.8.8 помоему и есть DNS сервер. Подмигивающий
Но всего один. Вот например когда яндекс был недоступен а по нему проверялось наличие интернета, сколько скриптов и программ сошло с ума =). Не надо зацикливаться на одном адресе, лучше всего пару десятков.
Записан
Bepec
Гость
« Ответ #10 : Март 30, 2012, 17:55 »

Скажем так - если упадёт гугль, то это будет печально...

А так конечно лучше проверить все 13 корневых DNS сов, если их Анонимусы 31 числа не вырубят.
Записан
Страниц: [1]   Вверх
  Печать  
 
Перейти в:  


Страница сгенерирована за 0.123 секунд. Запросов: 23.