![]() |
Условие подключения к инету
Всем привет!
Подскажите как самым оптимальным условием проверить подключение к инету на С++ вот примерно такой структурой Код:
If {условие} |
реальное подключение к инету ты можешь проверить тока определив ip какогонить крупного сайта.
типа определить имя ip адрес google.com Если определился, значит инет есть. Хотя если юзается кеш DNS то может и не быть инета, а данные берутся из кеша. Но самый действенный способ - просто подрубиться к какомунить сайта, есть подрубился и получил страницу, то инет есть. Единственное что не провериш, если доступ в инет через прокси идет. |
slesh, DNS, www от этих сервисов не всегда можно получить достоверную инфу.
Некоторые ISP отдают зоны даже при отключ. инете, с www - прокся. Обычно админы используют icmp на шлюз. Т.е. если шлюз доступен - инет работает или проблема у ISP, если шлюз не доступен - инета и быть не может :) |
так думаю вернее будет
Код:
#include <WinSock2.h> |
Код:
#undef UNICODEЕсли нужен постоянный мониторинг - юзай цикл. |
А вот пару примеров, из которых два выше варианта работать не будут:
217.69.128.44 упал на 10 сек, а в этот момент была проверка Траблы с маршрутизацией, BGP такое дело И снова коннект на 80 порт, это не разумно проверять конект на веб-сервер |
tracert до отрезолвленного msn.com
условие присутствия интернета это ответ следующего за вашим гейта! ... хотя можно и пингануть гейт провайдера! Интернет - это не америка не корневые ДНС сервера! Интернет -это среда переноса информации! |
Цитата:
|
ну свой гейт комп знает ....поэтому в логике я и писал трейсерт (icmp c временем жизни +1 от времени TTL при котором ответил свой гейт)
|
Retimiled, согласен!
PS: Осталось реализовать на с++ |
| Время: 01:25 |